Package org.nuxeo.ecm.core.blob
Class BlobStoreBlobProvider
java.lang.Object
org.nuxeo.ecm.core.blob.AbstractBlobProvider
org.nuxeo.ecm.core.blob.BlobStoreBlobProvider
- All Implemented Interfaces:
BlobProvider
- Direct Known Subclasses:
AzureBlobProvider
,GoogleStorageBlobProvider
,GridFSBlobProvider
,InMemoryBlobProvider
,LocalBlobProvider
,S3BlobProvider
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
AFileInputStream
that deletes its underlying file when it is closed. -
Field Summary
Fields inherited from class org.nuxeo.ecm.core.blob.AbstractBlobProvider
blobProviderId, properties
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Checks whether this blob provider allows direct download.void
deleteBlob
(BlobContext blobContext) Deletes a blob from storage.protected void
fixupDigest
(Blob blob, String key) Fixup of the blob's digest, if possible.Gets the associated garbage collector, if any.protected abstract BlobStore
getBlobStore
(String blobProviderId, Map<String, String> properties) protected abstract String
The digest algorithm to use for the default key strategy.getFile
(ManagedBlob blob) Gets aFile
(if one exists) for the data of a managed blob.abstract String
Gets the name of the scroll to scroll the blobs of the underlying blob store.Gets anInputStream
for a byte range of a managed blob.getStream
(ManagedBlob blob) Gets anInputStream
for the data of a managed blob.void
initialize
(String blobProviderId, Map<String, String> properties) Initializes the blob provider.boolean
isValidKey
(String key) Does the given key have the expected pattern for the provider's key strategy.Reads aBlob
from storage.protected String
stripBlobKeyPrefix
(String key) protected String
boolean
Checks if sync is supported.void
updateBlob
(BlobUpdateContext blobUpdateContext) Updates a blob's properties in storage.Writes aBlob
to storage and returns information about it.writeBlob
(BlobContext blobContext) Writes aBlob
to storage and returns information about it.Methods inherited from class org.nuxeo.ecm.core.blob.AbstractBlobProvider
allowByteRange, getProperties, hasCreateFromKeyPermission, isColdStorageMode, isRecordMode, isTransactional, isTransient, supportsUserUpdate, supportsUserUpdateDefaultFalse, supportsUserUpdateDefaultTrue
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.nuxeo.ecm.core.blob.BlobProvider
canConvert, close, getAppLinks, getAvailableConversions, getBinaryManager, getStatus, getThumbnail, getURI, isVersion, performsExternalAccessControl, readBlob
-
Field Details
-
KEY_STRATEGY_PROPERTY
- Since:
- 11.2
- See Also:
-
MANAGED_KEY_STRATEGY
- Since:
- 11.2
- See Also:
-
DIGEST_KEY_STRATEGY
- Since:
- 11.2
- See Also:
-
store
-
-
Constructor Details
-
BlobStoreBlobProvider
public BlobStoreBlobProvider()
-
-
Method Details
-
initialize
Description copied from interface:BlobProvider
Initializes the blob provider.- Specified by:
initialize
in interfaceBlobProvider
- Overrides:
initialize
in classAbstractBlobProvider
- Parameters:
blobProviderId
- the blob provider id for this binary managerproperties
- initialization properties- Throws:
IOException
-
getBlobStore
protected abstract BlobStore getBlobStore(String blobProviderId, Map<String, String> properties) throws IOException- Throws:
IOException
-
allowDirectDownload
public boolean allowDirectDownload()Description copied from interface:BlobProvider
Checks whether this blob provider allows direct download. -
getKeyStrategy
- Since:
- 11.2
-
getDigestAlgorithm
The digest algorithm to use for the default key strategy. -
supportsSync
public boolean supportsSync()Description copied from interface:BlobProvider
Checks if sync is supported.Sync refers to the fact that a blob from this provider may be synced with a remote system (like Nuxeo Drive) or with a process that updates things in the blob (like Binary Metadata, or WOPI).
- Returns:
true
if sync is supported
-
getBinaryGarbageCollector
Description copied from interface:BlobProvider
Gets the associated garbage collector, if any.- Returns:
- the garbage collector, or
null
-
isValidKey
Does the given key have the expected pattern for the provider's key strategy.- Since:
- 2023.5
-
stripBlobKeyPrefix
-
stripBlobKeyVersionSuffix
-
writeBlob
Description copied from interface:BlobProvider
Writes aBlob
to storage and returns information about it.Called to store a user-created blob.
- Parameters:
blobContext
- the blob context- Returns:
- the blob key
- Throws:
IOException
-
writeBlob
Description copied from interface:BlobProvider
Writes aBlob
to storage and returns information about it.Called to store a user-created blob.
- Parameters:
blob
- the blob- Returns:
- the blob key
- Throws:
IOException
-
getStream
Description copied from interface:BlobProvider
Gets anInputStream
for the data of a managed blob.Like all
InputStream
, the result must be closed when done with it to avoid resource leaks.- Parameters:
blob
- the managed blob- Returns:
- the stream
- Throws:
IOException
-
getStream
Description copied from interface:BlobProvider
Gets anInputStream
for a byte range of a managed blob.- Parameters:
blobKey
- the blob keybyteRange
- the byte range- Returns:
- the stream
- Throws:
IOException
-
getFile
Description copied from interface:BlobProvider
Gets aFile
(if one exists) for the data of a managed blob.- Parameters:
blob
- the managed blob- Returns:
- the file, or
null
if no underlying file is available
-
readBlob
Description copied from interface:BlobProvider
Reads aBlob
from storage.- Parameters:
blobInfo
- the blob information- Returns:
- the blob
- Throws:
IOException
-
fixupDigest
Fixup of the blob's digest, if possible.- Parameters:
blob
- the blobkey
- the key- Since:
- 11.2
-
updateBlob
Description copied from interface:BlobProvider
Updates a blob's properties in storage.- Parameters:
blobUpdateContext
- the blob update context- Throws:
IOException
-
deleteBlob
Description copied from interface:BlobProvider
Deletes a blob from storage. Only meaningful for a record blob provider.- Parameters:
blobContext
- the blob context- See Also:
-
getStoreScrollName
Gets the name of the scroll to scroll the blobs of the underlying blob store.- Since:
- 2023
-