您可以将文件从一个存储空间(源存储空间)拷贝到同一地域的另一个存储空间(目标存储空间)中。
以下代码用于拷贝文件。
// 创建copy请求 CopyObjectRequest copyObjectRequest = new CopyObjectRequest("<srcBucketName>", "<srcObjectKey>", "<destBucketName>", "<destObjectKey>"); // 可选设置copy文件元信息 // ObjectMetadata objectMetadata = new ObjectMetadata(); // objectMetadata.setContentType("application/octet-stream"); // copyObjectRequest.setNewObjectMetadata(objectMetadata); // 异步copy OSSAsyncTask copyTask = oss.asyncCopyObject(copyObjectRequest, new OSSCompletedCallback<CopyObjectRequest, CopyObjectResult>() { @Override public void onSuccess(CopyObjectRequest request, CopyObjectResult result) { Log.d("copyObject", "copy success!"); } @Override public void onFailure(CopyObjectRequest request, ClientException clientExcepion, ServiceException serviceException) { // 请求异常 if (clientExcepion != null) { // 本地异常如网络异常等 clientExcepion.printStackTrace(); } if (serviceException != null) { // 服务异常 Log.e("ErrorCode", serviceException.getErrorCode()); Log.e("RequestId", serviceException.getRequestId()); Log.e("HostId", serviceException.getHostId()); Log.e("RawMessage", serviceException.getRawMessage()); } } });
说明
- 源Object和目标Object必须属于同一地域。
- 如果拷贝操作的源Object地址和目标Object地址相同,可以修改已有文件元信息。
- 拷贝文件大小不能超过1G,超过1G需使用Multipart Upload等操作。