-
Type: Task
-
Status: Resolved
-
Priority: Minor
-
Resolution: Duplicate
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: BlobManager
Context
Nuxeo BlobStore allow to access a stream but only as a whole object: there is no exposed API to access to a range of the stream.
Several use cases may require such an API:
- media playback
- we support range inside the http download request, but still need to fetch tha full stream from the BlobStore backend.
- AFP preview
- a common use case is to preview a few pages inside a large AFP stream that can be several GB
Most backend technically support byte range access:
- Filesystem obviously supports it
- S3 API supports a setRange API
- Azure has also a range attribute in their get-blob API
- GCP Storage also has a concept of range
Prototype
A prototype was created in order to validate that it can work with AFP 2 PDF conversion: nuxeo-core-binarymanager-byterange:
- expose a High level service to access byterange in a Blob
- storage adapter for each BlobStore
- S3 and FS implementation of the storage adapter
The current code was just a POC to validate the concepts:
- we probably want this to be part of the the BlobStore API at least on master
- I suspect we want to remove usage of BinaryManager
Design questions
- Make the Range API a first class citizen of BlobStore vs having a dedicated interface ?
- How do we make that new API available on 10.10
- depends on
-
NXP-28919 Allow blob provider to do optimized byte range requests
- Resolved