public interface CloudClient
Exceptions
The methods in this interface may throw following exceptions:
ClientException
- if the client API failed to process the request or the response from the server.ServiceException
- if the storage cloud service returned an error or unexpected response.InvalidContainerName
if the container name is invalidInvalidObjectName
if the object name is invalidModifier and Type | Method and Description |
---|---|
boolean |
containerExists(String containerName)
Returns true if container exists.
|
CloudObject |
copyObject(String sourceContainerName, String sourceObjectName, String targetContainerName, String targetObjectName)
Creates a copy of a cloud object.
|
CloudObject |
copyObject(String sourceContainerName, String sourceObjectName, String targetContainerName, String targetObjectName, CopyObjectRequestConfig copyObjectRequestConfig)
Creates a copy of a cloud object using the specified request configuration.
|
CloudContainer |
createContainer(CreateContainerRequestConfig createContainerRequestConfig)
Creates a storage cloud container using the specified request configuration.
|
CloudContainer |
createContainer(String containerName, CloudStorageClass cloudStorageClass)
Creates a storage cloud container of specified name and storage class.
|
CloudContainer |
createSSEEnabledContainer(String containerName, CloudStorageClass cloudStorageClass)
Creates a Server-Side Encryption enabled storage cloud container of specified name and storage class.
|
void |
deleteContainer(String containerName)
Deletes an empty container.
|
void |
deleteObject(String containerName, String objectName)
Deletes an object in a container.
|
DeleteObjectsResult |
deleteObjects(String containerName, List<String> objectNames)
Deletes objects in a container.
|
void |
forceDeleteContainer(String containerName)
Force deletes a container after deleting all of its object.
|
CloudAccount |
getAccount()
Returns the storage cloud account owned by the caller of this API.
|
CloudContainer |
getContainer(String containerName)
Returns the storage cloud container of specified name and its meta data.
|
ContainerReplicationPolicy |
getContainerReplicationPolicy(String containerName)
Returns the replication policy for a container.
|
CloudObject |
getObject(String containerName, String objectName)
Returns the storage cloud object of specified name and its meta data.
|
ObjectRestoreJob |
getObjectRestoreJob(String containerName, String objectName)
Returns an object restore job for the specified object.
|
List<ReplicationPolicy> |
getReplicationPolicies()
Returns a list of replication policies of this account.
|
List<String> |
listContainers()
Returns the names of the containers in this account.
|
List<String> |
listContainers(ListContainersRequestConfig listContainersRequestConfig)
Returns the names the containers in this account.
|
List<String> |
listObjects(String containerName)
Returns the names of the objects in the specified container.
|
List<String> |
listObjects(String containerName, ListObjectsRequestConfig listObjectsRequestConfig)
Returns the names of the objects in the specified container.
|
boolean |
objectExists(String containerName, String objectName)
Returns true if the object exists.
|
ObjectRestoreJob |
restoreObject(String containerName, String objectName)
Initiates a restore of an object in an archive container and returns the restore job details.
|
void |
setContainerReplicationPolicy(String containerName, ContainerReplicationPolicyRequestConfig requestConfig)
Sets the replication policy for a container using specified request configuration.
|
void |
setObjectMetadata(String containerName, String objectName, Map<String,String> customMetadata, Map<String,String> systemMetadata)
Sets meta-data for an object.
|
void |
updateAccountMetadata(Map<String,String> customMetadata, Map<String,String> systemMetadata)
Updates meta-data for an account.
|
void |
updateContainerMetadata(String containerName, Map<String,String> customMetadata, Map<String,String> systemMetadata)
Updates meta-data for a container.
|
void |
updateObjectMetadata(String containerName, String objectName, Map<String,String> customMetadata, Map<String,String> systemMetadata)
Updates (or deletes) meta-data of an object.
|
CloudAccount getAccount() throws ClientException, ServiceException
ClientException
ServiceException
CloudObject getObject(String containerName, String objectName) throws ClientException, ServiceException
containerName
- container nameobjectName
- object nameObjectNotFound
- if the object does not existClientException
ServiceException
boolean objectExists(String containerName, String objectName) throws ClientException, ServiceException
containerName
- container nameobjectName
- object nameClientException
ServiceException
void deleteObject(String containerName, String objectName) throws ClientException, ServiceException
containerName
- container nameobjectName
- object to be deletedObjectNotFound
- if the object does not existContainerNotFound
- if the container does not existClientException
ServiceException
DeleteObjectsResult deleteObjects(String containerName, List<String> objectNames) throws ClientException, ServiceException
containerName
- container nameobjectNames
- objects to be deletedContainerNotFound
- if the specified container is not foundClientException
ServiceException
ObjectRestoreJob restoreObject(String containerName, String objectName) throws ClientException, ServiceException
containerName
- container nameobjectName
- object nameObjectNotFound
- if the object does not existContainerNotFound
- if the container does not existNotAnArchiveContainer
- if the container storage class is not of type Archive.ClientException
ServiceException
List<String> listObjects(String containerName) throws ClientException, ServiceException
Maximum of first 10,000 objects names are returned.
ContainerNotFound
- if the container does not existClientException
ServiceException
List<String> listObjects(String containerName, ListObjectsRequestConfig listObjectsRequestConfig) throws ClientException, ServiceException
By default, a maximum of first 10,000 object names are returned. Supports the following query parameters: limit, marker, end_marker, prefix, delimiter, path
containerName
- container namelistObjectsRequestConfig
- request configurationContainerNotFound
- if the container does not existClientException
ServiceException
CloudContainer createContainer(String containerName, CloudStorageClass cloudStorageClass) throws ClientException, ServiceException
containerName
- container namecloudStorageClass
- storage class for the new containerClientException
ServiceException
CloudContainer createContainer(CreateContainerRequestConfig createContainerRequestConfig) throws ClientException, ServiceException
createContainerRequestConfig
- Create container request configClientException
ServiceException
CloudContainer createSSEEnabledContainer(String containerName, CloudStorageClass cloudStorageClass) throws ClientException, ServiceException
This creates a container with a BASE_ENCRYPTION policy.
containerName
- container namecloudStorageClass
- storage class for the new containerClientException
ServiceException
CloudContainer getContainer(String containerName) throws ClientException, ServiceException
containerName
- container nameContainerNotFound
- if the container does not existClientException
ServiceException
boolean containerExists(String containerName) throws ClientException, ServiceException
containerName
- container nameClientException
ServiceException
void deleteContainer(String containerName) throws ClientException, ServiceException
containerName
- Container name to be deletedContainerNotFound
- if the container does not existContainerNotEmpty
- if the container is not emptyClientException
ServiceException
void forceDeleteContainer(String containerName) throws ClientException, ServiceException
containerName
- Container name to be deletedContainerNotFound
- if the specified container is not foundForceDeleteContainerException
- if one or more object deletion failedClientException
ServiceException
List<String> listContainers() throws ClientException, ServiceException
Maximum of first 10,000 container names are returned.
ClientException
ServiceException
List<ReplicationPolicy> getReplicationPolicies() throws ClientException, ServiceException
ClientException
ServiceException
List<String> listContainers(ListContainersRequestConfig listContainersRequestConfig) throws ClientException, ServiceException
By default, a maximum of first 10,000 container names are returned. Supports following query parameters: limit, marker, end_marker, prefix, delimiter
listContainersRequestConfig
-ClientException
ServiceException
ObjectRestoreJob getObjectRestoreJob(String containerName, String objectName) throws ClientException, ServiceException
containerName
- container nameobjectName
- object nameClientException
ServiceException
NotAnArchiveContainer
- if the specified container is not of storage class type Archive.ContainerNotFound
- if the specified container is not foundObjectNotFound
- if the object is not foundvoid setObjectMetadata(String containerName, String objectName, Map<String,String> customMetadata, Map<String,String> systemMetadata) throws ClientException, ServiceException
The specified custom and system meta-data are set as new meta-data for an object. This method deletes all the previous meta-data of the object that is not specified in the parameters custom and system meta-data. (Note: Only certain system meta-data can be deleted by this method.)
Mete-data Keys:
Mete-data values:
Refer to the cloud storage service documentation for additional restrictions and details about the meta-data keys and values.
containerName
- container nameobjectName
- object namecustomMetadata
- custom meta-data as key-value pairssystemMetadata
- system meta-data as key-value pairsObjectNotFound
- if the object does not existClientException
ServiceException
void updateObjectMetadata(String containerName, String objectName, Map<String,String> customMetadata, Map<String,String> systemMetadata) throws ClientException, ServiceException
The specified custom and system meta-data is added, updated or deleted. The meta-data that is not specified in parameters custom and system meta-data is not modified by this method. To delete a meta-data, specify the value of the meta-data as null. (Note: Only certain system meta-data can be deleted by this method.)
This method works as if the existing meta-data of the object is merged with the meta-data parameters of this method and then calling setObjectMetadata(String, String, Map, Map)
by providing this merged meta-data.The notes about mete-data keys and values in the method setObjectMetadata(String, String, Map, Map)
apply to this method as well.
containerName
- container nameobjectName
- object namecustomMetadata
- custom mete-data as key-value pairssystemMetadata
- system meta-data as key-value pairsObjectNotFound
- if the object does not existClientException
ServiceException
void updateContainerMetadata(String containerName, Map<String,String> customMetadata, Map<String,String> systemMetadata) throws ClientException, ServiceException
The specified custom and system meta-data are added, updated or deleted for a container. The meta-data that is not specified in the parameters custom and system meta-data is not modified by this method. To delete a meta-data key-value pair, specify the value of the meta-data as null. (Note: Only certain system meta-data can be deleted by this method.)
Mete-data Keys:
Mete-data values:
Refer to the cloud storage service documentation for additional restrictions and details about the meta-data keys and values.
containerName
- container namecustomMetadata
- custom meta-data as key-value pairssystemMetadata
- system meta-data as key-value pairsContainerNotFound
- if the container does not existClientException
ServiceException
void updateAccountMetadata(Map<String,String> customMetadata, Map<String,String> systemMetadata) throws ClientException, ServiceException
The specified custom and system meta-data are added, updated or deleted for an account. The meta-data that is not specified in the parameters custom and system meta-data is not modified by this method. To delete a meta-data key-value pair, specify the value of the meta-data as null.
Note: As of this release, the storage service does not support any modifiable system meta-data. So system meta-data parameter does not change any of the account's meta-data.
Mete-data Keys:
Mete-data values:
Refer to the cloud storage service documentation for additional restrictions and details about the meta-data keys and values.
customMetadata
- custom meta-data as key-value pairssystemMetadata
- system meta-data as key-value pairsClientException
ServiceException
CloudObject copyObject(String sourceContainerName, String sourceObjectName, String targetContainerName, String targetObjectName, CopyObjectRequestConfig copyObjectRequestConfig) throws ClientException, ServiceException
A new copy of an object is created and new meta-data is added if specified as follows.
If the source object is a Static Large object (SLO), then target object will also be a SLO containing new segments that are copies of the source object segments. Also,
If the target segments container does not exist, then it will be created with the same storage class as the target container itself.
If the target object already exists, it will be overwritten. If an existing target object is of type Static Large object (SLO), then its old segments will be deleted after a successful copy operation. If the old segments deletion fail, then a warning will be logged into a log file (provided that API logging is enabled).
If the source object is in an Archived state, then an exception SourceObjectNotRestored
is thrown. The source object must be restored first before calling this API again.
sourceContainerName
- container of the source objectsourceObjectName
- source object nametargetContainerName
- container of the target object, must already existtargetObjectName
- target object namecopyObjectRequestConfig
- request configuration for copy operation. May be null.ClientException
ServiceException
ObjectNotFound
- if source object is not foundUnsupportedObjectType
- if source object is a Dynamic Large object (DLO).ContainerNotFound
- if target container is not foundSourceObjectNotRestored
- if the source object (residing in an Archive Storage) is not in a Restored stateContainerStorageClassValidationFailed
- if the target object's segments' container validation fails.CloudObject copyObject(String sourceContainerName, String sourceObjectName, String targetContainerName, String targetObjectName) throws ClientException, ServiceException
This method works as if calling copyObject(String, String, String, String, CopyObjectRequestConfig)
by providing a null value for the CopyObjectRequestConfig parameter. So the API description of copyObject(String, String, String, String, CopyObjectRequestConfig)
apply to this method as well. The fresh meta-data parameter is assumed to be false.
All the object meta-data values are also copied to the new object.
sourceContainerName
- container of the source objectsourceObjectName
- source object nametargetContainerName
- container of the target object, must already existtargetObjectName
- target object nameClientException
ServiceException
ObjectNotFound
- if source object is not foundUnsupportedObjectType
- if source object is a Dynamic Large object (DLO).ContainerNotFound
- if the target container is not foundSourceObjectNotRestored
- if the source object (residing in an Archive Storage) is not in a Restored stateContainerStorageClassValidationFailed
- if the target object's segments' container validation fails.void setContainerReplicationPolicy(String containerName, ContainerReplicationPolicyRequestConfig requestConfig) throws ClientException, ServiceException
containerName
- container namerequestConfig
- Container replication policy request configurationContainerNotFound
- if the container does not existInvalidContainerReplicationPolicy
- if the source or any target region name is invalid.ClientException
ServiceException
ContainerReplicationPolicy getContainerReplicationPolicy(String containerName) throws ClientException, ServiceException
containerName
- container nameContainerNotFound
- if the container does not existClientException
ServiceException