Interface ContentAddressableStorage
- All Superinterfaces:
AutoCloseable
,VitamAutoCloseable
- All Known Implementing Classes:
AmazonS3V1
,ContentAddressableStorageAbstract
,ContentAddressableStorageJcloudsAbstract
,FileSystem
,HashFileSystem
,OpenstackSwift
,Swift
,TapeLibraryContentAddressableStorage
The ContentAddressableStorage interface.
-
Method Summary
Modifier and TypeMethodDescriptiondefault Map<String,
AccessRequestStatus> checkAccessRequestStatuses
(List<String> accessRequestIds, boolean adminCrossTenantAccessRequestAllowed) Checks status of access requests by id.default boolean
checkObjectAvailability
(String containerName, List<String> objectNames) Check object availability for async offers.void
checkObjectDigestAndStoreDigest
(String containerName, String objectName, String objectDigest, DigestType digestType, long size) Checks objet digest & update persist its digest in object metadatadefault String
createAccessRequest
(String containerName, List<String> objectNames) Create an access request for objects (asynchronous read from tape to local FS).void
createContainer
(String containerName) Creates a containervoid
deleteObject
(String containerName, String objectName) Deletes a object representing the data at location containerName/objectNamegetContainerInformation
(String containerName) Get container information like capacityRetrieves an object representing the data at location containerName/objectNamegetObjectDigest
(String containerName, String objectName, DigestType algo, boolean noCache) compute Object Digest using a defined algorithmgetObjectMetadata
(String containerName, String objectId, boolean noCache) get metadata of the objectboolean
isExistingContainer
(String containerName) Determines if a container existsboolean
isExistingObject
(String containerName, String objectName) Determines if an object existsvoid
listContainer
(String containerName, ObjectListingListener objectListingListener) List container objectsdefault String
putObject
(String containerName, String objectName, InputStream inputStream, DigestType digestType, long size) default void
removeAccessRequest
(String accessRequestId, boolean adminCrossTenantAccessRequestAllowed) Delete access request.void
writeObject
(String containerName, String objectName, InputStream inputStream, DigestType digestType, long size) Adds an object representing the data at location containerName/objectNameMethods inherited from interface fr.gouv.vitam.common.model.VitamAutoCloseable
close
-
Method Details
-
createContainer
Creates a container- Parameters:
containerName
- name of container to create- Throws:
ContentAddressableStorageServerException
- Thrown when internal server error happens
-
isExistingContainer
Determines if a container exists- Parameters:
containerName
- name of container- Returns:
- boolean type
- Throws:
ContentAddressableStorageServerException
- Thrown when internal server error happens
-
writeObject
void writeObject(String containerName, String objectName, InputStream inputStream, DigestType digestType, long size) throws ContentAddressableStorageException Adds an object representing the data at location containerName/objectName- Parameters:
containerName
- container to place the object.objectName
- fully qualified object name relative to the container.inputStream
- 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
-
checkObjectDigestAndStoreDigest
void checkObjectDigestAndStoreDigest(String containerName, String objectName, String objectDigest, DigestType digestType, long size) throws ContentAddressableStorageException Checks objet digest & update persist its digest in object metadata- Parameters:
containerName
- container to place the object.objectName
- fully qualified object name relative to the container.objectDigest
- object digest valuedigestType
- object digest typesize
- size off the input stream- Throws:
ContentAddressableStorageException
-
putObject
default String putObject(String containerName, String objectName, InputStream inputStream, DigestType digestType, long size) throws ContentAddressableStorageException -
getObject
ObjectContent getObject(String containerName, String objectName) throws ContentAddressableStorageNotFoundException, ContentAddressableStorageException, ContentAddressableStorageUnavailableDataFromAsyncOfferException Retrieves an object representing the data at location containerName/objectName- 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.ContentAddressableStorageUnavailableDataFromAsyncOfferException
- Thrown when object cannot be read due to missing access request on AsyncRead ContentAddressableStorageContentAddressableStorageException
- Thrown when get action failed due some other failure
-
createAccessRequest
default String createAccessRequest(String containerName, List<String> objectNames) throws ContentAddressableStorageException Create an access request for objects (asynchronous read from tape to local FS). Return access request identifier- Parameters:
containerName
- container where this exists.objectNames
- list of objects names for which access is requested- Returns:
- access request identifier
- Throws:
ContentAddressableStorageException
-
checkAccessRequestStatuses
default Map<String,AccessRequestStatus> checkAccessRequestStatuses(List<String> accessRequestIds, boolean adminCrossTenantAccessRequestAllowed) throws ContentAddressableStorageException Checks status of access requests by id.- Parameters:
accessRequestIds
- the identifiers of the access requests to checkadminCrossTenantAccessRequestAllowed
- whentrue
, access to access requests of other tenants is allowed from Admin tenant- Returns:
AccessRequestStatus
representing access request status- Throws:
ContentAddressableStorageException
-
removeAccessRequest
default void removeAccessRequest(String accessRequestId, boolean adminCrossTenantAccessRequestAllowed) throws ContentAddressableStorageException Delete access request. Ignored if no access request found (not exists, expired or already canceled).- Parameters:
accessRequestId
- the identifier of the access request to cancel.adminCrossTenantAccessRequestAllowed
- whentrue
, removing access requests of other tenants is allowed from Admin tenant- Throws:
ContentAddressableStorageException
-
checkObjectAvailability
default boolean checkObjectAvailability(String containerName, List<String> objectNames) throws ContentAddressableStorageException Check object availability for async offers.- Parameters:
containerName
- container where this exists.objectNames
- list of objects names for which availability is to be checked.- Returns:
true
if ALL objects are available, otherwisefalse
.- Throws:
ContentAddressableStorageException
-
deleteObject
void deleteObject(String containerName, String objectName) throws ContentAddressableStorageNotFoundException, ContentAddressableStorageException Deletes a object representing the data at location containerName/objectName- 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.ContentAddressableStorageException
- Thrown when delete action failed due some other failure
-
isExistingObject
boolean isExistingObject(String containerName, String objectName) throws ContentAddressableStorageException Determines if an object exists- Parameters:
containerName
- container where the object residesobjectName
- fully qualified name relative to the container.- Returns:
- boolean type
- Throws:
ContentAddressableStorageServerException
- Thrown when internal server error happensContentAddressableStorageException
-
getObjectDigest
String getObjectDigest(String containerName, String objectName, DigestType algo, boolean noCache) throws ContentAddressableStorageNotFoundException, ContentAddressableStorageServerException, ContentAddressableStorageException compute Object Digest using a defined algorithm- 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
ContainerInformation getContainerInformation(String containerName) throws ContentAddressableStorageNotFoundException, ContentAddressableStorageServerException Get container information like capacity- Parameters:
containerName
- the container name- Returns:
- container information like usableSpace
- Throws:
ContentAddressableStorageNotFoundException
- Thrown when the container cannot be located.ContentAddressableStorageServerException
- Thrown when internal server error happens
-
getObjectMetadata
MetadatasObject getObjectMetadata(String containerName, String objectId, boolean noCache) throws ContentAddressableStorageException get metadata of the object- Parameters:
containerName
- the container nameobjectId
- the objectId to check- Returns:
- MetadatasObjectResult
- Throws:
ContentAddressableStorageException
- Thrown when get action failed due some other failureIOException
- if an IOException is encountered with filesIllegalArgumentException
- thrown when containerName or objectId is null
-
listContainer
void listContainer(String containerName, ObjectListingListener objectListingListener) throws ContentAddressableStorageException, IOException List container objects- Parameters:
containerName
- the container name- Throws:
ContentAddressableStorageNotFoundException
- Thrown when the container cannot be located.ContentAddressableStorageServerException
- Thrown when internal server error happensContentAddressableStorageException
IOException
-