public abstract class AbstractFileTransferManager extends Object implements CloudClient
Constructor and Description |
---|
AbstractFileTransferManager() |
Modifier 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.
|
TransferResult |
download(DownloadConfig downloadConfig, String containerName, String objectName, File file)
Download an object from storage cloud to specified file.
|
TransferTask<TransferResult> |
downloadAsync(DownloadConfig downloadConfig, String containerName, String objectName, File file)
Initiates a download of an object from storage cloud.
|
MultiFileTransferResult |
downloadDirectory(DownloadConfig downloadConfig, String containerName, String objectPrefix, File destinationDirectory)
Download files from cloud storage into a directory.
|
TransferTask<MultiFileTransferResult> |
downloadDirectoryAsync(DownloadConfig downloadConfig, String containerName, String objectPrefix, File destinationDirectory)
Initiates download of files from cloud storage into a directory.
|
MultiFileTransferResult |
downloadMultipleFiles(DownloadConfig downloadConfig, String containerName, List<FileObjectTransferConfig> fileObjectTransferConfigs)
Download multiple files.
|
TransferTask<MultiFileTransferResult> |
downloadMultipleFilesAsync(DownloadConfig downloadConfig, String containerName, List<FileObjectTransferConfig> fileObjectTransferConfigs)
Initiates download of multiple files.
|
TransferResult |
downloadStream(DownloadConfig downloadConfig, String containerName, String objectName)
Initiates an download of an object as a Stream.
|
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.
|
static String |
getApiVersion()
Returns API version.
|
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.
|
FileTransferManagerConfig |
getFileTransferManagerConfig()
Gets the configuration information of the transfer manager.
|
ExecutorService |
getManagementThreadPool() |
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.
|
AtomicInteger |
getRequestCount() |
oracle.cloudstorage.api.ISession |
getSession() |
ExecutorService |
getThreadPool() |
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 |
setFileTransferAuth(FileTransferAuth fileTransferAuth)
Sets authentication credentials for transfer manager.
|
void |
setFileTransferManagerConfig(FileTransferManagerConfig managerConfig)
Sets the configuration information of the transfer manager.
|
void |
setObjectMetadata(String containerName, String objectName, Map<String,String> customMetadata, Map<String,String> systemMetadata)
Sets meta-data for an object.
|
void |
shutdown()
Shuts down the FileTransferManager gracefully and releases all resources that may have held.
|
void |
shutdownNow()
Shuts down the FileTransferManager now and releases all resources.
|
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.
|
TransferResult |
upload(UploadConfig uploadConfig, String containerName, String objectName, File file)
Uploads a file to storage cloud.
|
TransferTask<TransferResult> |
uploadAsync(UploadConfig uploadConfig, String containerName, String objectName, File file)
Initiates an upload of a file to storage cloud.
|
MultiFileTransferResult |
uploadDirectory(UploadConfig uploadConfig, String containerName, String objectPrefix, File directory, boolean includeSubdirectories)
Uploads all files in the specified directory to storage cloud.
|
TransferTask<MultiFileTransferResult> |
uploadDirectoryAsync(UploadConfig uploadConfig, String containerName, String objectPrefix, File directory, boolean includeSubdirectories)
Initiates an upload of all files in the specified directory to storage cloud.
|
MultiFileTransferResult |
uploadMultipleFiles(UploadConfig uploadConfig, String containerName, List<FileObjectTransferConfig> fileObjectTransferConfigs)
Uploads multiple files to storage cloud.
|
TransferTask<MultiFileTransferResult> |
uploadMultipleFilesAsync(UploadConfig uploadConfig, String containerName, List<FileObjectTransferConfig> fileObjectTransferConfigs)
Initiates an upload of multiple files to storage cloud.
|
TransferResult |
uploadSegmentedStream(UploadConfig uploadConfig, String containerName, String objectName, long segmentSize, InputStream inputstream)
Initiates an upload of a stream to storage cloud as segmented object.
|
TransferResult |
uploadStream(UploadConfig uploadConfig, String containerName, String objectName, InputStream inputstream)
Initiates an upload of a stream to storage cloud.
|
public ExecutorService getThreadPool()
public AtomicInteger getRequestCount()
public ExecutorService getManagementThreadPool()
public oracle.cloudstorage.api.ISession getSession()
public FileTransferManagerConfig getFileTransferManagerConfig()
public void setFileTransferManagerConfig(FileTransferManagerConfig managerConfig)
public void setFileTransferAuth(FileTransferAuth fileTransferAuth) throws ClientException, ServiceException
fileTransferAuth
- authentication credentialsClientException
ServiceException
public TransferResult upload(UploadConfig uploadConfig, String containerName, String objectName, File file) throws ClientException, ServiceException
The API returns after the upload is completed or throws an exception if there is any error during upload operation.
A large file (of size greater than the segment size specified in upload load configuration) is uploaded as a static-large object (SLO) with the segment size equal to the segment size specified by upload configuration.
Note about Server-side Encryption (SSE) Support
ContainerSSEPolicyMismatch
is thrown.ContainerSSEPolicyMismatch
is thrown.uploadConfig
- Upload configuration. May be null
.containerName
- container name. If container does not exist, it will be created.objectName
- Name of the object for the file to be uploaded. May be null
. If null, then the file's name(without the path) will be used as object name.file
- file to be uploadedContainerSSEPolicyMismatch
- if the SSE policy of the object container and the SLO segments' container does not matchContainerStorageClassValidationFailed
- if the storage class for object specified in uploadConfig does not match with storage class of an existing container.ObjectExists
- if the uploadConfig specifies Overwrite parameter as false and the object already existsFileSizeTooBig
- if the file to be uploaded is too bigSegmentSizeTooSmall
- if the segment size (for uploading a file as SLO) is too smallClientException
ServiceException
public TransferTask<TransferResult> uploadAsync(UploadConfig uploadConfig, String containerName, String objectName, File file) throws ClientException, ServiceException
This is an asynchronous version of method upload(UploadConfig, String, String, File)
. Refer to that method for details about behavior and exceptions thrown. The exceptions thrown by this asynchronous API could be recovered from the cause of exceptions thrown by TransferTask.getResult()
.
uploadConfig
- Upload configuration. May be null
.containerName
- container name. If container does not exist, it will be created.objectName
- Name of the object for the file to be uploaded. May be null
. If null, then the file's name (without the path) will be used as object name.file
- file to be uploadedClientException
ServiceException
public TransferResult uploadStream(UploadConfig uploadConfig, String containerName, String objectName, InputStream inputstream) throws ClientException, ServiceException
uploadConfig
- Upload configuration. May be null
.containerName
- container name. If container does not exist, it will be created.objectName
- Name of the object for the file to be uploaded.inputstream
- stream to be uploadedClientException
ServiceException
public TransferResult uploadSegmentedStream(UploadConfig uploadConfig, String containerName, String objectName, long segmentSize, InputStream inputstream) throws ClientException, ServiceException
uploadConfig
- Upload configuration. May be null
.containerName
- container name. If container does not exist, it will be created.objectName
- Name of the object to be stored.segmentSize
- Size of each segment of the stored object.inputstream
- stream to be uploadedClientException
ServiceException
public TransferResult downloadStream(DownloadConfig downloadConfig, String containerName, String objectName)
downloadConfig
- Download configuration. May be null
.containerName
- container name. If container does not exist, it will be created.objectName
- Name of the object to be stored.ClientException
ServiceException
public MultiFileTransferResult uploadMultipleFiles(UploadConfig uploadConfig, String containerName, List<FileObjectTransferConfig> fileObjectTransferConfigs) throws ClientException, ServiceException
uploadConfig
- Upload configuration. May be null
.containerName
- container name. If container does not exist, it will be created.fileObjectTransferConfigs
- List of object names and the source files to upload.ClientException
ServiceException
public TransferTask<MultiFileTransferResult> uploadMultipleFilesAsync(UploadConfig uploadConfig, String containerName, List<FileObjectTransferConfig> fileObjectTransferConfigs) throws ClientException, ServiceException
The returned task provides methods to detect the completion and to get the result of the operation.
uploadConfig
- Upload configuration. May be null
.containerName
- container name. If container does not exist, it will be created.fileObjectTransferConfigs
- List of object names and the source files to upload.ClientException
ServiceException
public MultiFileTransferResult uploadDirectory(UploadConfig uploadConfig, String containerName, String objectPrefix, File directory, boolean includeSubdirectories) throws ClientException, ServiceException
The object names for each file is generated as follows:
By default, hidden files and directories are included in the transfer operation. To exclude the hidden files and directories, use the excludeHiddenFiles option in uploadConfig
.
uploadConfig
- Upload configuration. May be null
.containerName
- container name. If container does not exist, it will be created.objectPrefix
- common prefix for the object names.directory
- directory to uploadincludeSubdirectories
- Indicates whether to include all files in sub-directories for upload. If false, only the files in the specified directory will be uploaded. Default is false.ClientException
ServiceException
public TransferTask<MultiFileTransferResult> uploadDirectoryAsync(UploadConfig uploadConfig, String containerName, String objectPrefix, File directory, boolean includeSubdirectories) throws ClientException, ServiceException
The object names for each file is generated as follows:
uploadConfig
- Upload configuration. May be null
.containerName
- container name. If container does not exist, it will be created.objectPrefix
- common prefix for the object names.directory
- directory to uploadincludeSubdirectories
- Indicates whether to include all files in sub-directories for upload. If false, only the files in the specified directory will be uploaded. Default is false.ClientException
ServiceException
public TransferResult download(DownloadConfig downloadConfig, String containerName, String objectName, File file) throws ClientException, ServiceException
If the object is in an archive container, then
ObjectNotRestored
exception is thrown.downloadConfig
- download configuration. May be null
.containerName
- container name for object to be down loaded.objectName
- Name of the object to be down loaded.file
- file to download the object to.InvalidDestinationFile
- if the specified file parameter is invalidFileNotWritable
- if the specified file is not writableFailedToCreateParentDirectory
- if failed to create the parent directory for the specified fileClientException
ServiceException
ObjectNotRestored
- if downloadConfig has isDownloadRestoredObjectOnly set to true and the object is not in a restored state.public TransferTask<TransferResult> downloadAsync(DownloadConfig downloadConfig, String containerName, String objectName, File file) throws ClientException, ServiceException
This is an asynchronous version of method download(DownloadConfig, String, String, File)
. Refer to that method for details about behavior and exceptions thrown. The exceptions thrown by this asynchronous API could be recovered from the cause of exceptions thrown by TransferTask.getResult()
.
downloadConfig
- download configuration. May be null
.containerName
- container name for object to be down loaded.objectName
- Name of the object to be down loaded.file
- file to download the object to.ClientException
ServiceException
public MultiFileTransferResult downloadMultipleFiles(DownloadConfig downloadConfig, String containerName, List<FileObjectTransferConfig> fileObjectTransferConfigs) throws ClientException, ServiceException
downloadConfig
- download configuration. May be null
.containerName
- container name for objects to be down loaded.fileObjectTransferConfigs
- List of object names and the source files to download.ClientException
ServiceException
public TransferTask<MultiFileTransferResult> downloadMultipleFilesAsync(DownloadConfig downloadConfig, String containerName, List<FileObjectTransferConfig> fileObjectTransferConfigs) throws ClientException, ServiceException
downloadConfig
- download configuration. May be null
.containerName
- container name for objects to be down loaded.fileObjectTransferConfigs
- List of object names and the source files to download.ClientException
ServiceException
public MultiFileTransferResult downloadDirectory(DownloadConfig downloadConfig, String containerName, String objectPrefix, File destinationDirectory) throws ClientException, ServiceException
The objectPrefix will be removed from destination file name for the object. If the object contained directory hierarchy, then the same directory hierarchy will be created in the destination directory.
For example, for a container container1, objectPrefix my_prefix, destination directory /abc/dir2, an object '/container1/my_prefixdir1/object1' will be downloaded as '/abc/dir2/dir1/object1'.
downloadConfig
- download configuration. May be null
.containerName
- container name for objects to be down loaded.objectPrefix
- Common object prefix of all objects to be downloaded. May be null
.destinationDirectory
- Directory to download all objects to. Directory will be created if it does not exist.ClientException
ServiceException
public TransferTask<MultiFileTransferResult> downloadDirectoryAsync(DownloadConfig downloadConfig, String containerName, String objectPrefix, File destinationDirectory) throws ClientException, ServiceException
Asynchronous version of downloadDirectory
method.
downloadConfig
-containerName
-objectPrefix
-destinationDirectory
-ClientException
ServiceException
public void shutdown()
Waits for all threads to shut down gracefully.
public void shutdownNow()
Forcefully shuts down all the executing threads now and releases all the resources that may have been held.
public static String getApiVersion()
public boolean objectExists(String containerName, String objectName) throws ClientException, ServiceException
CloudClient
objectExists
in interface CloudClient
containerName
- container nameobjectName
- object nameClientException
ServiceException
public CloudContainer createContainer(String containerName, CloudStorageClass cloudStorageClass) throws ClientException, ServiceException
CloudClient
createContainer
in interface CloudClient
containerName
- container namecloudStorageClass
- storage class for the new containerClientException
ServiceException
public CloudObject getObject(String containerName, String objectName) throws ClientException, ServiceException
CloudClient
getObject
in interface CloudClient
containerName
- container nameobjectName
- object nameObjectNotFound
- if the object does not existClientException
ServiceException
public boolean containerExists(String containerName) throws ClientException, ServiceException
CloudClient
containerExists
in interface CloudClient
containerName
- container nameClientException
ServiceException
public List<String> listContainers() throws ClientException, ServiceException
CloudClient
Maximum of first 10,000 container names are returned.
listContainers
in interface CloudClient
ClientException
ServiceException
public List<String> listContainers(ListContainersRequestConfig listContainersRequestConfig) throws ClientException, ServiceException
CloudClient
By default, a maximum of first 10,000 container names are returned. Supports following query parameters: limit, marker, end_marker, prefix, delimiter
listContainers
in interface CloudClient
ClientException
ServiceException
public void deleteContainer(String containerName) throws ClientException, ServiceException
CloudClient
deleteContainer
in interface CloudClient
containerName
- Container name to be deletedContainerNotFound
- if the container does not existContainerNotEmpty
- if the container is not emptyClientException
ServiceException
public CloudContainer getContainer(String containerName) throws ClientException, ServiceException
CloudClient
getContainer
in interface CloudClient
containerName
- container nameContainerNotFound
- if the container does not existClientException
ServiceException
public void deleteObject(String containerName, String objectName) throws ClientException, ServiceException
CloudClient
deleteObject
in interface CloudClient
containerName
- container nameobjectName
- object to be deletedObjectNotFound
- if the object does not existContainerNotFound
- if the container does not existClientException
ServiceException
public ObjectRestoreJob restoreObject(String containerName, String objectName) throws ClientException, ServiceException
CloudClient
restoreObject
in interface CloudClient
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
public List<String> listObjects(String containerName) throws ClientException, ServiceException
CloudClient
Maximum of first 10,000 objects names are returned.
listObjects
in interface CloudClient
ContainerNotFound
- if the container does not existClientException
ServiceException
public List<String> listObjects(String containerName, ListObjectsRequestConfig listObjectsRequestConfig) throws ClientException, ServiceException
CloudClient
By default, a maximum of first 10,000 object names are returned. Supports the following query parameters: limit, marker, end_marker, prefix, delimiter, path
listObjects
in interface CloudClient
containerName
- container namelistObjectsRequestConfig
- request configurationContainerNotFound
- if the container does not existClientException
ServiceException
public CloudAccount getAccount() throws ClientException, ServiceException
CloudClient
getAccount
in interface CloudClient
ClientException
ServiceException
public ObjectRestoreJob getObjectRestoreJob(String containerName, String objectName) throws ClientException, ServiceException
CloudClient
getObjectRestoreJob
in interface CloudClient
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 foundpublic DeleteObjectsResult deleteObjects(String containerName, List<String> objectNames) throws ClientException, ServiceException
CloudClient
deleteObjects
in interface CloudClient
containerName
- container nameobjectNames
- objects to be deletedContainerNotFound
- if the specified container is not foundClientException
ServiceException
public CloudContainer createSSEEnabledContainer(String containerName, CloudStorageClass cloudStorageClass) throws ClientException, ServiceException
CloudClient
This creates a container with a BASE_ENCRYPTION policy.
createSSEEnabledContainer
in interface CloudClient
containerName
- container namecloudStorageClass
- storage class for the new containerClientException
ServiceException
public void forceDeleteContainer(String containerName) throws ClientException, ServiceException
CloudClient
forceDeleteContainer
in interface CloudClient
containerName
- Container name to be deletedContainerNotFound
- if the specified container is not foundForceDeleteContainerException
- if one or more object deletion failedClientException
ServiceException
public void setObjectMetadata(String containerName, String objectName, Map<String,String> customMetadata, Map<String,String> systemMetadata) throws ClientException, ServiceException
CloudClient
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.
setObjectMetadata
in interface CloudClient
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
public void updateObjectMetadata(String containerName, String objectName, Map<String,String> customMetadata, Map<String,String> systemMetadata) throws ClientException, ServiceException
CloudClient
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 CloudClient.setObjectMetadata(String, String, Map, Map)
by providing this merged meta-data.The notes about mete-data keys and values in the method CloudClient.setObjectMetadata(String, String, Map, Map)
apply to this method as well.
updateObjectMetadata
in interface CloudClient
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
public void updateContainerMetadata(String containerName, Map<String,String> customMetadata, Map<String,String> systemMetadata) throws ClientException, ServiceException
CloudClient
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.
updateContainerMetadata
in interface CloudClient
containerName
- container namecustomMetadata
- custom meta-data as key-value pairssystemMetadata
- system meta-data as key-value pairsContainerNotFound
- if the container does not existClientException
ServiceException
public void updateAccountMetadata(Map<String,String> customMetadata, Map<String,String> systemMetadata) throws ClientException, ServiceException
CloudClient
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.
updateAccountMetadata
in interface CloudClient
customMetadata
- custom meta-data as key-value pairssystemMetadata
- system meta-data as key-value pairsClientException
ServiceException
public CloudObject copyObject(String sourceContainerName, String sourceObjectName, String targetContainerName, String targetObjectName, CopyObjectRequestConfig copyObjectRequestConfig) throws ClientException, ServiceException
CloudClient
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.
copyObject
in interface CloudClient
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.public CloudObject copyObject(String sourceContainerName, String sourceObjectName, String targetContainerName, String targetObjectName) throws ClientException, ServiceException
CloudClient
This method works as if calling CloudClient.copyObject(String, String, String, String, CopyObjectRequestConfig)
by providing a null value for the CopyObjectRequestConfig parameter. So the API description of CloudClient.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.
copyObject
in interface CloudClient
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.public void setContainerReplicationPolicy(String containerName, ContainerReplicationPolicyRequestConfig requestConfig) throws ClientException, ServiceException
CloudClient
setContainerReplicationPolicy
in interface CloudClient
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
public CloudContainer createContainer(CreateContainerRequestConfig createContainerRequestConfig) throws ClientException, ServiceException
CloudClient
createContainer
in interface CloudClient
createContainerRequestConfig
- Create container request configClientException
ServiceException
public ContainerReplicationPolicy getContainerReplicationPolicy(String containerName) throws ClientException, ServiceException
CloudClient
getContainerReplicationPolicy
in interface CloudClient
containerName
- container nameContainerNotFound
- if the container does not existClientException
ServiceException
public List<ReplicationPolicy> getReplicationPolicies() throws ClientException, ServiceException
CloudClient
getReplicationPolicies
in interface CloudClient
ClientException
ServiceException