jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henry Saginor (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-8186) Create API in OAK for file access to binaries in the repository.
Date Wed, 03 Apr 2019 05:16:00 GMT

    [ https://issues.apache.org/jira/browse/OAK-8186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16808374#comment-16808374
] 

Henry Saginor commented on OAK-8186:
------------------------------------

Hi [~mattvryan],

Basically an application may need support for random file access which right now requires
spooling binaries to temporary files in adhoc ways. For example we need to extract a zip file
uploaded to the JCR repo using a library like Apache Commons (just one example). And yes,
in case of local FileDataStore an implementation can just provide a copy of the blob stored
there which is what I have done. 

> Create API in OAK for file access to binaries in the repository.
> ----------------------------------------------------------------
>
>                 Key: OAK-8186
>                 URL: https://issues.apache.org/jira/browse/OAK-8186
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>            Reporter: Henry Saginor
>            Priority: Major
>         Attachments: OAK File Access.jpg
>
>
> To get file access applications normally write binaries to temp files. It would be nice
if an API existed to get file access directly from OAK. This might also meet some use cases
documented at [https://wiki.apache.org/jackrabbit/JCR%20Binary%20Usecase]
> Suggested API and implementation can be found here [1]. Also, see attached diagram [2].
> I can create a patch if I can get some feedback. Note that suggested API makes it explicit
that a temp file is created. I am not sure if direct access to files in datasore would be
safe. But I am open to suggestions.
> [1]
>  [https://github.com/hsaginor/jackrabbit-oak/blob/directFileAccess/oak-api/src/main/java/org/apache/jackrabbit/oak/api/blob/FileReferencable.java]
>  [https://github.com/hsaginor/jackrabbit-oak/blob/directFileAccess/oak-api/src/main/java/org/apache/jackrabbit/oak/api/blob/TempFileReference.java]
>  [https://github.com/hsaginor/jackrabbit-oak/blob/directFileAccess/oak-api/src/main/java/org/apache/jackrabbit/oak/api/blob/TempFileReferenceProvider.java]
>  [https://github.com/hsaginor/jackrabbit-oak/blob/directFileAccess/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/FileDSBlobTempFileReference.java]
>  [https://github.com/hsaginor/jackrabbit-oak/blob/directFileAccess/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java]
>  [https://github.com/hsaginor/jackrabbit-oak/blob/directFileAccess/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBlob.java]
>  [https://github.com/hsaginor/jackrabbit-oak/blob/directFileAccess/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/value/jcr/BinaryImpl.java]
> [2]
> !OAK File Access.jpg!



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message