Class ContentAddressableStorageJcloudsAbstract
- java.lang.Object
-
- fr.gouv.vitam.common.storage.cas.container.api.ContentAddressableStorageAbstract
-
- fr.gouv.vitam.common.storage.cas.container.api.ContentAddressableStorageJcloudsAbstract
-
- All Implemented Interfaces:
VitamAutoCloseable
,ContentAddressableStorage
,java.lang.AutoCloseable
- Direct Known Subclasses:
FileSystem
,OpenstackSwift
public abstract class ContentAddressableStorageJcloudsAbstract extends ContentAddressableStorageAbstract
Abstract class of CAS that contains common methods for a Jclouds backend
-
-
Field Summary
Fields Modifier and Type Field Description protected org.jclouds.blobstore.BlobStoreContext
context
-
Fields inherited from class fr.gouv.vitam.common.storage.cas.container.api.ContentAddressableStorageAbstract
LISTING_MAX_RESULTS
-
-
Constructor Summary
Constructors Constructor Description ContentAddressableStorageJcloudsAbstract(StorageConfiguration configuration)
creates a new ContentAddressableStorageImpl with a storage configuration param
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
checkObjectDigestAndStoreDigest(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 metadataabstract void
closeContext()
Close context according to implementation (http client not closed)void
createContainer(java.lang.String containerName)
Creates a containervoid
deleteObject(java.lang.String containerName, java.lang.String objectName)
Deletes a object representing the data at location containerName/objectNameabstract ContainerInformation
getContainerInformation(java.lang.String containerName)
Get container information like capacityabstract org.jclouds.blobstore.BlobStoreContext
getContext(StorageConfiguration configuration)
enables the connection to a storage service with the param providedObjectContent
getObject(java.lang.String containerName, java.lang.String objectName)
Retrieves an object representing the data at location containerName/objectNamejava.lang.String
getObjectDigest(java.lang.String containerName, java.lang.String objectName, DigestType digestType, boolean noCache)
compute Object Digest using a defined algorithmboolean
isExistingContainer(java.lang.String containerName)
Determines if a container existsboolean
isExistingObject(java.lang.String containerName, java.lang.String objectName)
Determines if an object existsvoid
listContainer(java.lang.String containerName, ObjectListingListener objectListingListener)
List container objectsvoid
writeObject(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, getObjectMetadata, putObject, removeAccessRequest
-
Methods inherited from interface fr.gouv.vitam.common.model.VitamAutoCloseable
close
-
-
-
-
Constructor Detail
-
ContentAddressableStorageJcloudsAbstract
public ContentAddressableStorageJcloudsAbstract(StorageConfiguration configuration)
creates a new ContentAddressableStorageImpl with a storage configuration param- Parameters:
configuration
-StorageConfiguration
-
-
Method Detail
-
getContext
public abstract org.jclouds.blobstore.BlobStoreContext getContext(StorageConfiguration configuration)
enables the connection to a storage service with the param provided- Parameters:
configuration
- the storage configuration- Returns:
- BlobStoreContext
-
closeContext
public abstract void closeContext()
Close context according to implementation (http client not closed)
-
createContainer
public void createContainer(java.lang.String containerName)
Description copied from interface:ContentAddressableStorage
Creates a container- Parameters:
containerName
- name of container to create
-
isExistingContainer
public boolean isExistingContainer(java.lang.String containerName)
Description copied from interface:ContentAddressableStorage
Determines if a container exists- Parameters:
containerName
- name of container- Returns:
- boolean type
-
writeObject
public void writeObject(java.lang.String containerName, java.lang.String objectName, java.io.InputStream inputStream, DigestType digestType, long size) throws ContentAddressableStorageException
Description copied from interface:ContentAddressableStorage
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
public void checkObjectDigestAndStoreDigest(java.lang.String containerName, java.lang.String objectName, java.lang.String objectDigest, DigestType digestType, long size) throws ContentAddressableStorageException
Description copied from interface:ContentAddressableStorage
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
-
getObjectDigest
public java.lang.String getObjectDigest(java.lang.String containerName, java.lang.String objectName, DigestType digestType, boolean noCache) throws ContentAddressableStorageException
Description copied from interface:ContentAddressableStorage
compute 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
-
getObject
public ObjectContent getObject(java.lang.String containerName, java.lang.String objectName) throws ContentAddressableStorageException
Description copied from interface:ContentAddressableStorage
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
-
deleteObject
public void deleteObject(java.lang.String containerName, java.lang.String objectName) throws ContentAddressableStorageNotFoundException
Description copied from interface:ContentAddressableStorage
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.
-
isExistingObject
public boolean isExistingObject(java.lang.String containerName, java.lang.String objectName)
Description copied from interface:ContentAddressableStorage
Determines if an object exists- Parameters:
containerName
- container where the object residesobjectName
- fully qualified name relative to the container.- Returns:
- boolean type
-
getContainerInformation
public abstract ContainerInformation getContainerInformation(java.lang.String containerName) throws ContentAddressableStorageNotFoundException
Description copied from interface:ContentAddressableStorage
Get container information like capacity- Parameters:
containerName
- the container name- Returns:
- container information like usableSpace
- Throws:
ContentAddressableStorageNotFoundException
- Thrown when the container cannot be located.
-
listContainer
public void listContainer(java.lang.String containerName, ObjectListingListener objectListingListener) throws ContentAddressableStorageNotFoundException, java.io.IOException
Description copied from interface:ContentAddressableStorage
List container objects- Parameters:
containerName
- the container name- Throws:
ContentAddressableStorageNotFoundException
- Thrown when the container cannot be located.java.io.IOException
-
-