> On 26.06.2018, at 00:28, Marcel Reutegger <[email protected]> wrote:
> On 21.06.18 23:11, Alexander Klimetschek wrote:
>> The design of Oak is explicitly that the NodeStore controls binaries,
>> and use of a BlobStore is only optional. Root and Tree only see the
>> NodeStore, not the BlobStore. The SegmentNodeStore even makes the
>> choice to inline binaries under 16 KB for example. For these, the new
>> HTTP access is not possible and getHttpDownloadURL() must return null
>> in that case. This logic can only happen in the implementation of the
>> NodeStores.
> 
> The blob store can do the same and return null in that case.
> 
>> How would a client access it? How would the permission check be implemented?
> 
> It could work the same way as done in the current PR.

See my comment touching on this in OAK-7570 [1].

While the above point might be moot (now) due to the use of ReferenceBinary in 
SessionImpl.getHttpDownloadURL() (assuming this is only present for binaries 
from a BlobStore), there is still the question how SessionImpl would get hold 
of a BlobStore without breaking separation of concerns.

As mentioned before, this is simply a new feature on all layers, so a clean API 
approach requires this on all layers. Note that almost all changes do not 
interact with existing code.

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

Cheers,
Alex

Reply via email to