cos:PutObject ,源对象的授权 action 需要设置为cos:GetObject ,更多授权请参见 支持CAM的业务接口。cos:InitiateMultipartUpload,cos:PutObject,cos:CompleteMultipartUpload,源对象的授权 action 需要设置为cos:GetObject ,更多授权请参见 支持CAM的业务接口。cos:DeleteObject ,更多授权请参见 支持CAM的业务接口。功能名称 | 描述 | 示例代码 |
高级接口 | 高级接口封装了简单拷贝、分块拷贝接口,根据文件大小智能的选择拷贝对象的方式。 | |
简单操作 | 简单操作的拷贝接口可以拷贝一个对象至指定存储桶中,不支持自动分块拷贝。最大支持拷贝不超过5GB的对象,5GB以上对象请使用 分块拷贝 或 高级接口 拷贝。 |
// 初始化 TransferConfig,这里使用默认配置,如果需要定制,请参考 SDK 接口文档// 默认对大于或等于5M的文件自动进行分块复制,分块大小为5M,可以通过如下代码修改分块阈值TransferConfig transferConfig = new TransferConfig.Builder() // 设置启用分块复制的最小对象大小 默认为5M .setDividsionForCopy(5242880) // 设置分块复制时的分块大小 默认为5M .setSliceSizeForCopy(5242880) .build();// 初始化 TransferManagerTransferManager transferManager = new TransferManager(cosXmlService,transferConfig);
String sourceBucket = "sourcebucket-1250000000"; //源对象所在的存储桶String sourceRegion = "COS_REGION"; //源对象的存储桶所在的地域String sourceCosPath = "sourceObject"; //源对象的对象键//构造源对象属性CopyObjectRequest.CopySourceStruct copySourceStruct =new CopyObjectRequest.CopySourceStruct(sourceBucket, sourceRegion, sourceCosPath);//目标桶// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.tencentcloud.com/cos5/bucketString bucket = "examplebucket-1250000000";//目标对象String cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即对象键//复制对象COSXMLCopyTask cosxmlCopyTask = transferManager.copy(bucket, cosPath,copySourceStruct);//设置返回结果回调cosxmlCopyTask.setCosXmlResultListener(new CosXmlResultListener() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult result) {COSXMLCopyTask.COSXMLCopyTaskResult copyResult =(COSXMLCopyTask.COSXMLCopyTaskResult) result;}// 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:// clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?@Overridepublic void onFail(CosXmlRequest request,@Nullable CosXmlClientException clientException,@Nullable CosXmlServiceException serviceException) {if (clientException != null) {clientException.printStackTrace();} else {serviceException.printStackTrace();}}});//设置任务状态回调, 可以查看任务过程cosxmlCopyTask.setTransferStateListener(new TransferStateListener() {@Overridepublic void onStateChanged(TransferState state) {// todo notify transfer state}});
final String sourceBucket = "sourcebucket-1250000000"; //源对象所在的存储桶final String sourceRegion = "COS_REGION"; //源对象的存储桶所在的地域final String sourceKey = "sourceObject"; //源对象键//构造源对象属性CopyObjectRequest.CopySourceStruct copySource = new CopyObjectRequest.CopySourceStruct(sourceBucket,sourceRegion, sourceKey);String bucket = "examplebucket-1250000000"; //目标存储桶,格式:BucketName-APPIDString key = "exampleobject"; //目标对象的对象键// copy(String bucket, String cosPath, CopyObjectRequest.CopySourceStruct copySourceStruct){COSXMLCopyTask copyTask = transferManager.copy(bucket, key, copySource);copyTask.setCosXmlResultListener(new CosXmlResultListener() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult result) {try {// 复制成功后删除文件DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest(sourceBucket, sourceKey);DeleteObjectResult deleteResult = cosXmlService.deleteObject(deleteObjectRequest);} catch (CosXmlClientException e) {e.printStackTrace();} catch (CosXmlServiceException e) {e.printStackTrace();}}@Overridepublic void onFail(CosXmlRequest request, CosXmlClientException exception, CosXmlServiceException serviceException) {}});
String sourceBucket = "sourcebucket-1250000000"; //源对象所在的存储桶String sourceRegion = "COS_REGION"; //源对象的存储桶所在的地域String sourceCosPath = "sourceObject"; //源对象键// 构造源对象属性CopyObjectRequest.CopySourceStruct copySourceStruct =new CopyObjectRequest.CopySourceStruct(sourceBucket, sourceRegion, sourceCosPath);// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.tencentcloud.com/cos5/bucketString bucket = "examplebucket-1250000000";String cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即对象键CopyObjectRequest copyObjectRequest = new CopyObjectRequest(bucket, cosPath,copySourceStruct);cosXmlService.copyObjectAsync(copyObjectRequest, new CosXmlResultListener() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult result) {CopyObjectResult copyObjectResult = (CopyObjectResult) result;}// 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:// clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?@Overridepublic void onFail(CosXmlRequest cosXmlRequest,@Nullable CosXmlClientException clientException,@Nullable CosXmlServiceException serviceException) {if (clientException != null) {clientException.printStackTrace();} else {serviceException.printStackTrace();}}});
String sourceBucket = "sourcebucket-1250000000"; //源对象所在的存储桶String sourceRegion = "COS_REGION"; //源对象的存储桶所在的地域String sourceCosPath = "sourceObject"; //源对象键// 构造源对象属性CopyObjectRequest.CopySourceStruct copySourceStruct =new CopyObjectRequest.CopySourceStruct(sourceBucket, sourceRegion, sourceCosPath);// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.tencentcloud.com/cos5/bucketString bucket = "examplebucket-1250000000";String cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即对象键CopyObjectRequest copyObjectRequest = new CopyObjectRequest(bucket, cosPath,copySourceStruct);copyObjectRequest.setCopyMetaDataDirective(MetaDataDirective.REPLACED);copyObjectRequest.setXCOSMeta("x-cos-metadata-oldKey", "newValue");cosXmlService.copyObjectAsync(copyObjectRequest, new CosXmlResultListener() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult result) {CopyObjectResult copyObjectResult = (CopyObjectResult) result;}// 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:// clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?@Overridepublic void onFail(CosXmlRequest cosXmlRequest,@Nullable CosXmlClientException clientException,@Nullable CosXmlServiceException serviceException) {if (clientException != null) {clientException.printStackTrace();} else {serviceException.printStackTrace();}}});
// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.tencentcloud.com/cos5/bucketString bucket = "examplebucket-1250000000";String region = "COS_REGION"; //源对象的存储桶所在的地域String cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即对象键// 构造源对象属性CopyObjectRequest.CopySourceStruct copySourceStruct =new CopyObjectRequest.CopySourceStruct(bucket, region, cosPath);CopyObjectRequest copyObjectRequest = new CopyObjectRequest(bucket, cosPath,copySourceStruct);copyObjectRequest.setCopyMetaDataDirective(MetaDataDirective.REPLACED);// 修改元数据为新值copyObjectRequest.setXCOSMeta("x-cos-metadata-oldKey", "newValue");cosXmlService.copyObjectAsync(copyObjectRequest, new CosXmlResultListener() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult result) {CopyObjectResult copyObjectResult = (CopyObjectResult) result;}// 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:// clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?@Overridepublic void onFail(CosXmlRequest cosXmlRequest,@Nullable CosXmlClientException clientException,@Nullable CosXmlServiceException serviceException) {if (clientException != null) {clientException.printStackTrace();} else {serviceException.printStackTrace();}}});
// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.tencentcloud.com/cos5/bucketString bucket = "examplebucket-1250000000";String region = "COS_REGION"; //源对象的存储桶所在的地域String cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即对象键// 构造源对象属性CopyObjectRequest.CopySourceStruct copySourceStruct =new CopyObjectRequest.CopySourceStruct(bucket, region, cosPath);CopyObjectRequest copyObjectRequest = new CopyObjectRequest(bucket, cosPath,copySourceStruct);// 修改为低频存储copyObjectRequest.setCosStorageClass(COSStorageClass.STANDARD_IA);cosXmlService.copyObjectAsync(copyObjectRequest, new CosXmlResultListener() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult result) {CopyObjectResult copyObjectResult = (CopyObjectResult) result;}// 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:// clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?@Overridepublic void onFail(CosXmlRequest cosXmlRequest,@Nullable CosXmlClientException clientException,@Nullable CosXmlServiceException serviceException) {if (clientException != null) {clientException.printStackTrace();} else {serviceException.printStackTrace();}}});
文档反馈