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
Nested ClassesModifier and TypeClassDescriptionstatic classAFileInputStreamthat deletes its underlying file when it is closed. -
Field Summary
FieldsFields inherited from class org.nuxeo.ecm.core.blob.AbstractBlobProvider
blobProviderId, properties -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanChecks whether this blob provider allows direct download.voiddeleteBlob(BlobContext blobContext) Deletes a blob from storage.protected voidfixupDigest(Blob blob, String key) Fixup of the blob's digest, if possible.Gets the associated garbage collector, if any.protected abstract BlobStoregetBlobStore(String blobProviderId, Map<String, String> properties) protected abstract StringThe 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 StringGets the name of the scroll to scroll the blobs of the underlying blob store.Gets anInputStreamfor a byte range of a managed blob.getStream(ManagedBlob blob) Gets anInputStreamfor the data of a managed blob.voidinitialize(String blobProviderId, Map<String, String> properties) Initializes the blob provider.booleanisValidKey(String key) Does the given key have the expected pattern for the provider's key strategy.Reads aBlobfrom storage.protected StringstripBlobKeyPrefix(String key) protected StringbooleanChecks if sync is supported.voidupdateBlob(BlobUpdateContext blobUpdateContext) Updates a blob's properties in storage.Writes aBlobto storage and returns information about it.writeBlob(BlobContext blobContext) Writes aBlobto 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, supportsUserUpdateDefaultTrueMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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:BlobProviderInitializes the blob provider.- Specified by:
initializein interfaceBlobProvider- Overrides:
initializein 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:BlobProviderChecks 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:BlobProviderChecks 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:
trueif sync is supported
-
getBinaryGarbageCollector
Description copied from interface:BlobProviderGets 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:BlobProviderWrites aBlobto 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:BlobProviderWrites aBlobto 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:BlobProviderGets anInputStreamfor 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:BlobProviderGets anInputStreamfor 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:BlobProviderGets aFile(if one exists) for the data of a managed blob.- Parameters:
blob- the managed blob- Returns:
- the file, or
nullif no underlying file is available
-
readBlob
Description copied from interface:BlobProviderReads aBlobfrom 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:BlobProviderUpdates a blob's properties in storage.- Parameters:
blobUpdateContext- the blob update context- Throws:
IOException
-
deleteBlob
Description copied from interface:BlobProviderDeletes 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
-