Class FilesystemBlobProvider
- java.lang.Object
-
- org.nuxeo.ecm.core.blob.AbstractBlobProvider
-
- org.nuxeo.ecm.core.blob.FilesystemBlobProvider
-
- All Implemented Interfaces:
BlobProvider
public class FilesystemBlobProvider extends AbstractBlobProvider
Blob provider that can reference files on the filesystem.This blob provider MUST be configured with a "root" property that specifies the minimum root path for all files:
<blobprovider name="myfsblobprovider"> <class>org.nuxeo.ecm.core.blob.FilesystemBlobProvider</class> <property name="root">/base/directory/for/files</property> </blobprovider>
A root of
/
may be used to allow any path.Blobs are constructed through
createBlob(org.nuxeo.ecm.core.blob.BlobInfo)
. The constructed blob's key, which will be stored in the document database, contains a path relative to the root.- Since:
- 7.10
-
-
Field Summary
Fields Modifier and Type Field Description protected String
root
The root ending with /, or an empty string.static String
ROOT_PROP
-
Fields inherited from class org.nuxeo.ecm.core.blob.AbstractBlobProvider
blobProviderId, properties
-
-
Constructor Summary
Constructors Constructor Description FilesystemBlobProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes this blob provider and releases resources that may be held by it.ManagedBlob
createBlob(BlobInfo blobInfo)
Creates a filesystem blob with the given information.File
getFile(ManagedBlob blob)
Gets aFile
(if one exists) for the data of a managed blob.InputStream
getStream(ManagedBlob blob)
Gets anInputStream
for the data of a managed blob.void
initialize(String blobProviderId, Map<String,String> properties)
Initializes the blob provider.Blob
readBlob(BlobInfo blobInfo)
Reads aBlob
from storage.protected String
stripBlobKeyPrefix(String key)
boolean
supportsSync()
Checks if sync is supported.boolean
supportsUserUpdate()
Checks if user update is supported.String
writeBlob(Blob blob)
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, 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
allowDirectDownload, canConvert, deleteBlob, getAppLinks, getAvailableConversions, getBinaryGarbageCollector, getBinaryManager, getStatus, getStream, getThumbnail, getURI, isVersion, performsExternalAccessControl, readBlob, updateBlob, writeBlob
-
-
-
-
Field Detail
-
ROOT_PROP
public static final String ROOT_PROP
- See Also:
- Constant Field Values
-
root
protected String root
The root ending with /, or an empty string.
-
-
Method Detail
-
initialize
public void initialize(String blobProviderId, Map<String,String> properties) throws IOException
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
-
close
public void close()
Description copied from interface:BlobProvider
Closes this blob provider and releases resources that may be held by it.
-
readBlob
public Blob readBlob(BlobInfo blobInfo) throws IOException
Description copied from interface:BlobProvider
Reads aBlob
from storage.- Parameters:
blobInfo
- the blob information- Returns:
- the blob
- Throws:
IOException
-
getStream
public InputStream getStream(ManagedBlob blob) throws IOException
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
-
getFile
public File getFile(ManagedBlob blob)
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
-
supportsUserUpdate
public boolean supportsUserUpdate()
Description copied from interface:BlobProvider
Checks if user update is supported.A user update refers to the fact that a blob from this provider may be overwritten with another blob, wherever the original blob may occur (usually in a document property).
- Specified by:
supportsUserUpdate
in interfaceBlobProvider
- Overrides:
supportsUserUpdate
in classAbstractBlobProvider
- Returns:
true
if user update is supported
-
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
-
writeBlob
public String writeBlob(Blob blob) throws IOException
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
-
createBlob
public ManagedBlob createBlob(BlobInfo blobInfo) throws IOException
Creates a filesystem blob with the given information.The passed
BlobInfo
contains information about the blob, and the key is a file path.- Parameters:
blobInfo
- the blob info where the key is a file path- Returns:
- the blob
- Throws:
IOException
-
-