Class TapeLibraryContentAddressableStorage
- java.lang.Object
-
- fr.gouv.vitam.storage.offers.tape.cas.TapeLibraryContentAddressableStorage
-
- All Implemented Interfaces:
VitamAutoCloseable,ContentAddressableStorage,java.lang.AutoCloseable
public class TapeLibraryContentAddressableStorage extends java.lang.Object implements ContentAddressableStorage
-
-
Constructor Summary
Constructors Constructor Description TapeLibraryContentAddressableStorage(BasicFileStorage basicFileStorage, ObjectReferentialRepository objectReferentialRepository, ArchiveReferentialRepository archiveReferentialRepository, ReadRequestReferentialRepository readRequestReferentialRepository, FileBucketTarCreatorManager fileBucketTarCreatorManager, QueueRepository readWriteQueue, TapeCatalogService tapeCatalogService, java.lang.String outputTarStorageFolder, ArchiveOutputRetentionPolicy archiveOutputRetentionPolicy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidcreateContainer(java.lang.String containerName)Creates a containerjava.lang.StringcreateReadOrderRequest(java.lang.String containerName, java.util.List<java.lang.String> objectsIds)Create read order (asynchronous read from tape to local FS) for the given objects representing the data at location containerName/objectId.voiddeleteObject(java.lang.String containerName, java.lang.String objectName)Deletes a object representing the data at location containerName/objectNameContainerInformationgetContainerInformation(java.lang.String containerName)Get container information like capacityObjectContentgetObject(java.lang.String containerName, java.lang.String objectName)Retrieves an object representing the data at location containerName/objectNamejava.lang.StringgetObjectDigest(java.lang.String containerName, java.lang.String objectName, DigestType algo, boolean noCache)compute Object Digest using a defined algorithmMetadatasObjectgetObjectMetadata(java.lang.String containerName, java.lang.String objectName, boolean noCache)get metadata of the objectbooleanisExistingContainer(java.lang.String containerName)Determines if a container existsbooleanisExistingObject(java.lang.String containerName, java.lang.String objectName)Determines if an object existsvoidlistContainer(java.lang.String containerName, ObjectListingListener objectListingListener)List container objectsjava.lang.StringputObject(java.lang.String containerName, java.lang.String objectName, java.io.InputStream stream, DigestType digestType, java.lang.Long size)Adds an object representing the data at location containerName/objectNamevoidremoveReadOrderRequest(java.lang.String readRequestID)Purge all read request id to cleanup local FS
-
-
-
Constructor Detail
-
TapeLibraryContentAddressableStorage
public TapeLibraryContentAddressableStorage(BasicFileStorage basicFileStorage, ObjectReferentialRepository objectReferentialRepository, ArchiveReferentialRepository archiveReferentialRepository, ReadRequestReferentialRepository readRequestReferentialRepository, FileBucketTarCreatorManager fileBucketTarCreatorManager, QueueRepository readWriteQueue, TapeCatalogService tapeCatalogService, java.lang.String outputTarStorageFolder, ArchiveOutputRetentionPolicy archiveOutputRetentionPolicy)
-
-
Method Detail
-
createContainer
public void createContainer(java.lang.String containerName)
Description copied from interface:ContentAddressableStorageCreates a container- Specified by:
createContainerin interfaceContentAddressableStorage- Parameters:
containerName- name of container to create
-
isExistingContainer
public boolean isExistingContainer(java.lang.String containerName)
Description copied from interface:ContentAddressableStorageDetermines if a container exists- Specified by:
isExistingContainerin interfaceContentAddressableStorage- Parameters:
containerName- name of container- Returns:
- boolean type
-
putObject
public java.lang.String putObject(java.lang.String containerName, java.lang.String objectName, java.io.InputStream stream, DigestType digestType, java.lang.Long size) throws ContentAddressableStorageExceptionDescription copied from interface:ContentAddressableStorageAdds an object representing the data at location containerName/objectName- Specified by:
putObjectin interfaceContentAddressableStorage- Parameters:
containerName- container to place the object.objectName- fully qualified object name relative to the container.stream- the datadigestType- parameter to compute an hash.size- size off the input stream- Throws:
ContentAddressableStorageNotFoundException- Thrown when the container cannot be located.ContentAddressableStorageException- Thrown when put action failed due some other failureContentAddressableStorageAlreadyExistException- Thrown when object creating exists
-
getObject
public ObjectContent getObject(java.lang.String containerName, java.lang.String objectName) throws ContentAddressableStorageNotFoundException, ContentAddressableStorageServerException
Description copied from interface:ContentAddressableStorageRetrieves an object representing the data at location containerName/objectName- Specified by:
getObjectin interfaceContentAddressableStorage- Parameters:
containerName- container where this exists.objectName- fully qualified name relative to the container.- Returns:
- the object you intended to receive
- Throws:
ContentAddressableStorageNotFoundException- Thrown when the container cannot be located.ContentAddressableStorageServerException
-
createReadOrderRequest
public java.lang.String createReadOrderRequest(java.lang.String containerName, java.util.List<java.lang.String> objectsIds) throws ContentAddressableStorageServerException, ContentAddressableStorageNotFoundExceptionDescription copied from interface:ContentAddressableStorageCreate read order (asynchronous read from tape to local FS) for the given objects representing the data at location containerName/objectId. Return read order entity- Specified by:
createReadOrderRequestin interfaceContentAddressableStorage- Parameters:
containerName- container where this exists.objectsIds- list of the fully qualified name relative to the container.- Returns:
- read order request id
- Throws:
ContentAddressableStorageNotFoundException- Thrown when the container cannot be located.ContentAddressableStorageServerException
-
removeReadOrderRequest
public void removeReadOrderRequest(java.lang.String readRequestID) throws ContentAddressableStorageServerExceptionDescription copied from interface:ContentAddressableStoragePurge all read request id to cleanup local FS- Specified by:
removeReadOrderRequestin interfaceContentAddressableStorage- Parameters:
readRequestID- the read request ID.- Throws:
ContentAddressableStorageServerException
-
deleteObject
public void deleteObject(java.lang.String containerName, java.lang.String objectName) throws ContentAddressableStorageServerException, ContentAddressableStorageNotFoundExceptionDescription copied from interface:ContentAddressableStorageDeletes a object representing the data at location containerName/objectName- Specified by:
deleteObjectin interfaceContentAddressableStorage- Parameters:
containerName- container where this exists.objectName- fully qualified name relative to the container.- Throws:
ContentAddressableStorageNotFoundException- Thrown when the container cannot be located or the blob cannot be located in the container.ContentAddressableStorageServerException
-
isExistingObject
public boolean isExistingObject(java.lang.String containerName, java.lang.String objectName) throws ContentAddressableStorageServerExceptionDescription copied from interface:ContentAddressableStorageDetermines if an object exists- Specified by:
isExistingObjectin interfaceContentAddressableStorage- Parameters:
containerName- container where the object residesobjectName- fully qualified name relative to the container.- Returns:
- boolean type
- Throws:
ContentAddressableStorageServerException- Thrown when internal server error happens
-
getObjectDigest
public java.lang.String getObjectDigest(java.lang.String containerName, java.lang.String objectName, DigestType algo, boolean noCache) throws ContentAddressableStorageExceptionDescription copied from interface:ContentAddressableStoragecompute Object Digest using a defined algorithm- Specified by:
getObjectDigestin interfaceContentAddressableStorage- Parameters:
containerName- container where this exists.objectName- fully qualified name relative to the container.algo- Digest algonoCache- forces full digest computation- Returns:
- the digest object as String
- Throws:
ContentAddressableStorageNotFoundException- Thrown when the container or the object cannot be locatedContentAddressableStorageServerException- Thrown when internal server error happensContentAddressableStorageException- Thrown when put action failed due some other failure
-
getContainerInformation
public ContainerInformation getContainerInformation(java.lang.String containerName)
Description copied from interface:ContentAddressableStorageGet container information like capacity- Specified by:
getContainerInformationin interfaceContentAddressableStorage- Parameters:
containerName- the container name- Returns:
- container information like usableSpace
-
getObjectMetadata
public MetadatasObject getObjectMetadata(java.lang.String containerName, java.lang.String objectName, boolean noCache) throws ContentAddressableStorageException
Description copied from interface:ContentAddressableStorageget metadata of the object- Specified by:
getObjectMetadatain interfaceContentAddressableStorage- Parameters:
containerName- the container nameobjectName- the objectId to check- Returns:
- MetadatasObjectResult
- Throws:
ContentAddressableStorageException- Thrown when get action failed due some other failure
-
listContainer
public void listContainer(java.lang.String containerName, ObjectListingListener objectListingListener) throws ContentAddressableStorageNotFoundException, ContentAddressableStorageServerException, java.io.IOExceptionDescription copied from interface:ContentAddressableStorageList container objects- Specified by:
listContainerin interfaceContentAddressableStorage- Parameters:
containerName- the container name- Throws:
ContentAddressableStorageNotFoundException- Thrown when the container cannot be located.ContentAddressableStorageServerException- Thrown when internal server error happensjava.io.IOException
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfaceVitamAutoCloseable
-
-