> I think the discussion about the adapter pattern is orthogonal to the binary
For me its tied to how you are going to implement this support. Adaptable patterns is one way based on my current understand of Oak design. At level of ValueFactory.getBinary we do not know if the Blob can provide a signed url. Its deep down in the layer JCR Binary -> Oak Blob -> DataStoreBlob -> S3DataStore DataRecord. So each Blob cannot provided a signed url and it depends on backing DataStore. This can be easily supported via adaptor pattern where JCR layer tries to adapt and then final backing BlobStore impl decides to provide the adaption implementation. I do not see how instance of checks can be expressed across all these layers A rough sketch of any alternative proposal would be helpful to decide how to move forward Chetan Mehrotra