Package fr.gouv.vitam.common.storage.s3
Class AmazonS3V1
- java.lang.Object
-
- fr.gouv.vitam.common.storage.cas.container.api.ContentAddressableStorageAbstract
-
- fr.gouv.vitam.common.storage.s3.AmazonS3V1
-
- All Implemented Interfaces:
VitamAutoCloseable,ContentAddressableStorage,java.lang.AutoCloseable
public class AmazonS3V1 extends ContentAddressableStorageAbstract
Amazon SDK S3 V1 abstract implementation Manage with all common amazon sdk s3 v1 methods.
-
-
Field Summary
-
Fields inherited from class fr.gouv.vitam.common.storage.cas.container.api.ContentAddressableStorageAbstract
LISTING_MAX_RESULTS
-
-
Constructor Summary
Constructors Constructor Description AmazonS3V1(StorageConfiguration configuration)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcheckObjectDigestAndStoreDigest(java.lang.String containerName, java.lang.String objectName, java.lang.String objectDigest, DigestType digestType, long size)Checks objet digest & update persist its digest in object metadatavoidclose()voidcreateContainer(java.lang.String containerName)Creates a containervoiddeleteObject(java.lang.String containerName, java.lang.String objectName)Deletes a object representing the data at location containerName/objectNamejava.lang.StringgenerateBucketName(java.lang.String containerName)Generate a valid bucket name from the container name : replace non alphanumeric values by '.', lowercase every alphabetic value and remove '.ContainerInformationgetContainerInformation(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 digestType, boolean noCache)compute Object Digest using a defined algorithmMetadatasObjectgetObjectMetadata(java.lang.String containerName, java.lang.String objectId, 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 objectsvoidwriteObject(java.lang.String containerName, java.lang.String objectName, java.io.InputStream inputStream, DigestType digestType, long size)Adds an object representing the data at location containerName/objectName-
Methods inherited from class fr.gouv.vitam.common.storage.cas.container.api.ContentAddressableStorageAbstract
cacheExistsContainer, computeObjectDigest, disableContainerCaching, getConfiguration, isExistingContainerInCache
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface fr.gouv.vitam.common.storage.cas.container.api.ContentAddressableStorage
checkAccessRequestStatuses, checkObjectAvailability, createAccessRequest, putObject, removeAccessRequest
-
-
-
-
Constructor Detail
-
AmazonS3V1
public AmazonS3V1(StorageConfiguration configuration) throws java.security.KeyManagementException, java.security.NoSuchAlgorithmException, java.security.KeyStoreException, java.security.cert.CertificateException, java.io.IOException
- Throws:
java.security.KeyManagementExceptionjava.security.NoSuchAlgorithmExceptionjava.security.KeyStoreExceptionjava.security.cert.CertificateExceptionjava.io.IOException
-
-
Method Detail
-
createContainer
public void createContainer(java.lang.String containerName) throws ContentAddressableStorageServerExceptionDescription copied from interface:ContentAddressableStorageCreates a container- Parameters:
containerName- name of container to create- Throws:
ContentAddressableStorageServerException- Thrown when internal server error happens
-
isExistingContainer
public boolean isExistingContainer(java.lang.String containerName) throws ContentAddressableStorageServerExceptionDescription copied from interface:ContentAddressableStorageDetermines if a container exists- Parameters:
containerName- name of container- Returns:
- boolean type
- Throws:
ContentAddressableStorageServerException- Thrown when internal server error happens
-
writeObject
public void writeObject(java.lang.String containerName, java.lang.String objectName, java.io.InputStream inputStream, DigestType digestType, long size) throws ContentAddressableStorageExceptionDescription copied from interface:ContentAddressableStorageAdds 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
public void checkObjectDigestAndStoreDigest(java.lang.String containerName, java.lang.String objectName, java.lang.String objectDigest, DigestType digestType, long size) throws ContentAddressableStorageExceptionDescription copied from interface:ContentAddressableStorageChecks 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
-
getObject
public ObjectContent getObject(java.lang.String containerName, java.lang.String objectName) throws ContentAddressableStorageException
Description copied from interface:ContentAddressableStorageRetrieves 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
-
deleteObject
public void deleteObject(java.lang.String containerName, java.lang.String objectName) throws ContentAddressableStorageExceptionDescription copied from interface:ContentAddressableStorageDeletes 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
public boolean isExistingObject(java.lang.String containerName, java.lang.String objectName) throws ContentAddressableStorageServerExceptionDescription copied from interface:ContentAddressableStorageDetermines 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 happens
-
getObjectDigest
public java.lang.String getObjectDigest(java.lang.String containerName, java.lang.String objectName, DigestType digestType, boolean noCache) throws ContentAddressableStorageExceptionDescription copied from interface:ContentAddressableStoragecompute Object Digest using a defined algorithm- Parameters:
containerName- container where this exists.objectName- fully qualified name relative to the container.digestType- 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) throws ContentAddressableStorageNotFoundException, ContentAddressableStorageServerException
Description copied from interface:ContentAddressableStorageGet 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
public MetadatasObject getObjectMetadata(java.lang.String containerName, java.lang.String objectId, boolean noCache) throws ContentAddressableStorageException
Description copied from interface:ContentAddressableStorageget 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 failure
-
listContainer
public void listContainer(java.lang.String containerName, ObjectListingListener objectListingListener) throws ContentAddressableStorageNotFoundException, ContentAddressableStorageServerException, java.io.IOExceptionDescription copied from interface:ContentAddressableStorageList container objects- 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()
-
generateBucketName
public java.lang.String generateBucketName(java.lang.String containerName)
Generate a valid bucket name from the container name : replace non alphanumeric values by '.', lowercase every alphabetic value and remove '. 'at start and end.- Parameters:
containerName- vitam container name- Returns:
- bucket name valid according to s3 API specification
- See Also:
- Bucket restrictions and limitations
-
-