API | 操作名 | 操作描述 |
对象复制 | 复制文件到目标路径 |
API | 操作名 | 操作描述 |
查询分块上传/复制 | 查询正在进行中的分块上传/复制信息 | |
初始化分块上传/复制 | 初始化分块上传/复制操作 | |
复制分块 | 将其他对象复制为一个分块 | |
查询已上传/复制块 | 查询特定分块操作中的已上传/复制的块 | |
完成分块上传/复制 | 完成整个文件的分块上传/复制 | |
终止分块上传/复制 | 终止一个分块操作并删除已上传/复制的块 |
// 创建 TransferManager 实例,这个实例用来后续调用高级接口TransferManager createTransferManager() {// 创建一个 COSClient 实例,这是访问 COS 服务的基础实例。// 这里创建的 cosClient 是以复制的目的端信息为基础的// 详细代码参见本页: 简单操作 -> 创建 COSClientCOSClient cosClient = createCOSClient();// 自定义线程池大小,建议在客户端与 COS 网络充足(例如使用腾讯云的 CVM,同地域上传 COS)的情况下,设置成16或32即可,可较充分的利用网络资源// 对于使用公网传输且网络带宽质量不高的情况,建议减小该值,避免因网速过慢,造成请求超时。ExecutorService threadPool = Executors.newFixedThreadPool(32);// 传入一个 threadpool, 若不传入线程池,默认 TransferManager 中会生成一个单线程的线程池。TransferManager transferManager = new TransferManager(cosClient, threadPool);// 设置高级接口的配置项// 分块复制阈值和分块大小分别为 5MB 和 1MBTransferManagerConfiguration transferManagerConfiguration = new TransferManagerConfiguration();transferManagerConfiguration.setMultipartCopyThreshold(5*1024*1024);transferManagerConfiguration.setMultipartCopyPartSize(1*1024*1024);transferManager.setConfiguration(transferManagerConfiguration);return transferManager;}
成员名 | 设置方法 | 描述 | 类型 |
minimumUploadPartSize | set 方法 | 分块上传的块大小,单位:字节(Byte),默认为5MB | long |
multipartUploadThreshold | set 方法 | 大于等于该值则并发的分块上传文件,单位:字节(Byte),默认为5MB | long |
multipartCopyThreshold | set 方法 | 大于等于该值则并发的分块复制文件,单位:字节(Byte),默认为5GB | long |
multipartCopyPartSize | set 方法 | 分块复制的块大小,单位:字节(Byte),默认为100MB | long |
void shutdownTransferManager(TransferManager transferManager) {// 指定参数为 true, 则同时会关闭 transferManager 内部的 COSClient 实例。// 指定参数为 false, 则不会关闭 transferManager 内部的 COSClient 实例。transferManager.shutdownNow(true);}
// 上传对象public Copy copy(final CopyObjectRequest copyObjectRequest);
// 使用高级接口必须先保证本进程存在一个 TransferManager 实例,如果没有则创建// 详细代码参见本页:高级接口 -> 创建 TransferManagerTransferManager transferManager = createTransferManager();// 复制的源桶所在的地域Region srcBucketRegion = new Region("ap-beijing");// 复制的源桶,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String srcBucketName = "srcbucket-1250000000";// 复制的源文件路径String srcKey = "path/srckey";// 复制的目的桶名, 命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String destBucketName = "destbucket-1250000000";// 复制的目的文件路径String destKey = "path/destkey";CopyObjectRequest copyObjectRequest = new CopyObjectRequest(srcBucketRegion, srcBucketName,srcKey, destBucketName, destKey);try {Copy copy = transferManager.copy(copyObjectRequest);// 高级接口会返回一个异步结果 Copy// 可同步的调用 waitForCopyResult 等待复制结束, 成功返回 CopyResult, 失败抛出异常CopyResult copyResult = copy.waitForCopyResult();System.out.println(copyResult.getRequestId());} catch (CosServiceException e) {e.printStackTrace();} catch (CosClientException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}// 确定本进程不再使用 transferManager 实例之后,关闭之// 详细代码参见本页:高级接口 -> 关闭 TransferManagershutdownTransferManager(transferManager);
参数名称 | 描述 | 类型 |
copyObjectRequest | 复制文件请求 | CopyObjectRequest |
参数名称 | 描述 | 类型 |
sourceBucketRegion | 源 Bucket Region 。默认值:与当前 clientconfig 的 region 一致,表示统一地域复制 | String |
sourceBucketName | 源存储桶名称,存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 | String |
sourceKey | 源对象键,对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg 中,对象键为 doc/picture.jpg,详情请参见 对象键 | String |
sourceVersionId | 源文件 version id(适用于开启了版本控制的源 Bucket)。默认值:源文件当前最新版本 | String |
destinationBucketName | 目标存储桶名称,存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 | String |
destinationKey | 目的对象键,对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg 中,对象键为 doc/picture.jpg,详情请参见 对象键 | String |
storageClass | 复制的目标文件的存储类型。枚举值:Standard,Standard_IA。默认值:Standard。更多存储类型请参见 存储类型概述 | String |
// 上传对象public Copy copy(final CopyObjectRequest copyObjectRequest);
// 这里创建以复制的目的端信息为基础// 使用高级接口必须先保证本进程存在一个 TransferManager 实例,如果没有则创建// 详细代码参见本页:高级接口 -> 创建 TransferManagerTransferManager transferManager = createTransferManager();// 复制的源桶所在的地域Region srcBucketRegion = new Region("ap-beijing");// 复制的源桶,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String srcBucketName = "srcbucket-1250000000";// 复制的源文件路径String srcKey = "path/srckey";// 注意:复制的目的桶所在地域是在创建 TransferManager/CosClient 时通过函数: createTransferManager() -> createCOSClient() -> clientConfig.setRegion(dstRegion) 设置的// 复制的目的桶名, 命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String destBucketName = "destbucket-1250000000";// 复制的目的文件路径String destKey = "path/destkey";// 这里创建的 cosClient 是以复制的源端信息为基础的// 详细代码参见本页: 简单操作 -> 创建 COSClientCOSClient srcCOSClient = createCOSClient();CopyObjectRequest copyObjectRequest = new CopyObjectRequest(srcBucketRegion, srcBucketName,srcKey, destBucketName, destKey);try {Copy copy = transferManager.copy(copyObjectRequest, srcCOSClient, null);// 高级接口会返回一个异步结果 Copy// 可同步的调用 waitForCopyResult 等待复制结束, 成功返回 CopyResult, 失败抛出异常CopyResult copyResult = copy.waitForCopyResult();} catch (CosServiceException e) {e.printStackTrace();} catch (CosClientException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}// 确定本进程不再使用 transferManager 实例之后,关闭之// 详细代码参见本页:高级接口 -> 关闭 TransferManagershutdownTransferManager(transferManager);
参数名称 | 描述 | 类型 |
copyObjectRequest | 复制文件请求 | CopyObjectRequest |
参数名称 | 描述 | 类型 |
sourceBucketRegion | 源 Bucket Region 。默认值:与当前 clientconfig 的 region 一致,表示统一地域复制 | String |
sourceBucketName | 源存储桶名称,存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 | String |
sourceKey | 源对象键,对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg 中,对象键为 doc/picture.jpg,详情请参见 对象键 | String |
sourceVersionId | 源文件 version id(适用于开启了版本控制的源 Bucket)。默认值:源文件当前最新版本 | String |
destinationBucketName | 目标存储桶名称,存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 | String |
destinationKey | 目的对象键,对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg 中,对象键为 doc/picture.jpg,详情请参见 对象键 | String |
storageClass | 复制的目标文件的存储类型。枚举值:Standard,Standard_IA。默认值:Standard。更多存储类型请参见 存储类型概述 | String |
// 复制的源桶所在的地域Region srcBucketRegion = new Region("ap-beijing");// 复制的源桶,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String srcBucketName = "srcbucket-1250000000";// 复制的源文件路径String srcKey = "path/srckey";// 复制的目的桶所在的地域Region destBucketRegion = new Region("ap-shanghai");// 复制的目的桶名, 命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String destBucketName = "destbucket-1250000000";// 复制的目的文件路径String destKey = "path/destkey";// 实现参考本页:高级接口 -> 复制对象copyObject();// 实现参考:删除对象deleteObject();
// 创建 COSClient 实例,这个实例用来后续调用请求COSClient createCOSClient() {// 设置用户身份信息。// SECRETID 和 SECRETKEY 请登录访问管理控制台 https://console.tencentcloud.com/cam/capi 进行查看和管理String secretId = "SECRETID";String secretKey = "SECRETKEY";COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);// ClientConfig 中包含了后续请求 COS 的客户端设置:ClientConfig clientConfig = new ClientConfig();// 设置 bucket 的地域// COS_REGION 请参照 https://www.tencentcloud.com/document/product/436/6224?from_cn_redirect=1clientConfig.setRegion(new Region("COS_REGION"));// 设置请求协议, http 或者 https// 5.6.53 及更低的版本,建议设置使用 https 协议// 5.6.54 及更高版本,默认使用了 httpsclientConfig.setHttpProtocol(HttpProtocol.https);// 以下的设置,是可选的:// 设置 socket 读取超时,默认 30sclientConfig.setSocketTimeout(30*1000);// 设置建立连接超时,默认 30sclientConfig.setConnectionTimeout(30*1000);// 如果需要的话,设置 http 代理,ip 以及 portclientConfig.setHttpProxyIp("httpProxyIp");clientConfig.setHttpProxyPort(80);// 生成 cos 客户端。return new COSClient(cred, clientConfig);}
// 创建 COSClient 实例,这个实例用来后续调用请求COSClient createCOSClient() {// 这里需要已经获取到临时密钥的结果。// 临时密钥的生成参考 https://www.tencentcloud.com/document/product/436/14048String tmpSecretId = "TMPSECRETID";String tmpSecretKey = "TMPSECRETKEY";String sessionToken = "SESSIONTOKEN";COSCredentials cred = new BasicSessionCredentials(tmpSecretId, tmpSecretKey, sessionToken);// ClientConfig 中包含了后续请求 COS 的客户端设置:ClientConfig clientConfig = new ClientConfig();// 设置 bucket 的地域// COS_REGION 请参照 https://www.tencentcloud.com/document/product/436/6224?from_cn_redirect=1clientConfig.setRegion(new Region("COS_REGION"));// 设置请求协议, http 或者 https// 5.6.53 及更低的版本,建议设置使用 https 协议// 5.6.54 及更高版本,默认使用了 httpsclientConfig.setHttpProtocol(HttpProtocol.https);// 以下的设置,是可选的:// 设置 socket 读取超时,默认 30sclientConfig.setSocketTimeout(30*1000);// 设置建立连接超时,默认 30sclientConfig.setConnectionTimeout(30*1000);// 如果需要的话,设置 http 代理,ip 以及 portclientConfig.setHttpProxyIp("httpProxyIp");clientConfig.setHttpProxyPort(80);// 生成 cos 客户端。return new COSClient(cred, clientConfig);}
public CopyObjectResult copyObject(CopyObjectRequest copyObjectRequest)throws CosClientException, CosServiceException
// 复制的源桶所在的地域Region srcBucketRegion = new Region("ap-beijing");// 复制的源桶,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String srcBucketName = "srcbucket-1250000000";// 复制的源文件路径String srcKey = "path/srckey";// 复制的目的桶所在的地域Region destBucketRegion = new Region("ap-beijing");// 复制的目的桶名, 命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String destBucketName = "destbucket-1250000000";// 复制的目的文件路径String destKey = "path/destkey";// 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建// 这里创建的 cosClient 是以复制的目的端信息为基础的// 详细代码参见本页:简单上传 -> 创建 COSClientCOSClient cosClient = createCOSClient();CopyObjectRequest copyObjectRequest = new CopyObjectRequest(srcBucketRegion, srcBucketName,srcKey, destBucketName, destKey);try {CopyObjectResult copyObjectResult = cosClient.copyObject(copyObjectRequest);System.out.println(copyObjectResult.getRequestId());} catch (CosServiceException e) {e.printStackTrace();} catch (CosClientException e) {e.printStackTrace();}// 确认本进程不再使用 cosClient 实例之后,关闭之cosClient.shutdown();
参数名称 | 描述 | 类型 |
copyObjectRequest | 拷贝文件请求 | CopyObjectRequest |
参数名称 | 描述 | 类型 |
sourceBucketRegion | 源 Bucket region。默认值:与当前 clientConfig 的 region 一致,表示同地域拷贝 | String |
sourceBucketName | 源存储桶名称,命名格式为 BucketName-APPID,详情请参见 命名规范 | String |
sourceKey | 源对象键,对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg 中,对象键为 doc/picture.jpg,详情请参见 对象键 | String |
sourceVersionId | 源文件 version id(适用于开启了版本控制的源 Bucket)。默认值:源文件当前最新版本 | String |
destinationBucketName | 目标存储桶名称,Bucket 的命名格式为 BucketName-APPID ,name 由字母数字和中划线构成 | String |
destinationKey | 目的对象键,对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg 中,对象键为 doc/picture.jpg,详情请参见 对象键 | String |
storageClass | 拷贝的目的文件的存储类型。枚举值:Standard,Standard_IA。默认值:Standard。更多存储类型请参见 存储类型概述 | String |
public InitiateMultipartUploadResult initiateMultipartUpload(InitiateMultipartUploadRequest request) throws CosClientException, CosServiceException;
// 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建// 这里创建的 cosClient 是以复制的目的端信息为基础的// 详细代码参见本页:简单操作 -> 创建 COSClientCOSClient cosClient = createCOSClient();// 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String bucketName = "examplebucket-1250000000";// 对象键(Key)是对象在存储桶中的唯一标识。详情请参见 [对象键](https://www.tencentcloud.com/document/product/436/13324)String key = "exampleobject";InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest(bucketName, key);// 分块复制的过程中,仅能通过初始化分块指定文件复制之后的metadata// 需要的头部可以在这里指定ObjectMetadata objectMetadata = new ObjectMetadata();request.setObjectMetadata(objectMetadata);try {InitiateMultipartUploadResult initResult = cosClient.initiateMultipartUpload(request);// 获取uploadidString uploadId = initResult.getUploadId();System.out.println(uploadId);} catch (CosServiceException e) {throw e;} catch (CosClientException e) {throw e;}
参数名称 | 描述 | 类型 |
initiateMultipartUploadRequest | 请求 | InitiateMultipartUploadRequest |
public MultipartUploadListing listMultipartUploads(ListMultipartUploadsRequest listMultipartUploadsRequest)throws CosClientException, CosServiceException
// 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建// 这里创建的 cosClient 是以复制的目的端信息为基础的// 详细代码参见本页:简单操作 -> 创建 COSClientCOSClient cosClient = createCOSClient();// 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String bucketName = "examplebucket-1250000000";// 需要查询的分块复制任务对应的 keyString targetKey = "targetKey";ListMultipartUploadsRequest listMultipartUploadsRequest = new ListMultipartUploadsRequest(bucketName);// 每次请求最多列出多少个listMultipartUploadsRequest.setMaxUploads(100);// 设置要查询的分块复制任务的目标前缀,直接设置要查询的 keylistMultipartUploadsRequest.setPrefix("targetKey");MultipartUploadListing multipartUploadListing = null;boolean found = false;do {multipartUploadListing = cosClient.listMultipartUploads(listMultipartUploadsRequest);List<MultipartUpload> multipartUploads = multipartUploadListing.getMultipartUploads();for (MultipartUpload mUpload : multipartUploads) {if (mUpload.getKey().equals(targetKey)) {System.out.println(mUpload.getUploadId());found = true;break;}}if (found) {break;}} while (multipartUploadListing.isTruncated());if (!found) {System.out.printf("do not found upload task with key: %s\\n", targetKey);}
参数名称 | 描述 | 类型 |
listMultipartUploadsRequest | 请求 | ListMultipartUploadsRequest |
参数名称 | 描述 | 类型 |
bucketName | Bucket 的命名格式为 BucketName-APPID ,详情请参见 命名规范 | String |
keyMarker | 列出条目从该 Key 值开始 | String |
delimiter | 定界符为一个符号,如果有 Prefix,则将 Prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix,然后列出所有 Common Prefix。如果没有 Prefix,则从路径起点开始 | String |
prefix | 限定返回的 Object key 必须以 Prefix 作为前缀。注意使用 prefix 查询时,返回的 key 中仍会包含 Prefix | String |
uploadIdMarker | 列出条目从该 UploadId 值开始 | String |
maxUploads | 设置最大返回的 multipart 数量,合法值1到1000 | String |
encodingType | 规定返回值的编码方式,可选值:url | String |
public CopyPartResult copyPart(CopyPartRequest copyPartRequest) throws CosClientException, CosServiceException
// 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建// 这里创建的 cosClient 是以复制的目的端信息为基础的// 详细代码参见本页:简单操作 -> 创建 COSClientCOSClient cosClient = createCOSClient();// 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String bucketName = "examplebucket-1250000000";// 对象键(Key)是对象在存储桶中的唯一标识。详情请参见 [对象键](https://www.tencentcloud.com/document/product/436/13324)String key = "exampleobject";// uploadId 是一次分块复制任务的唯一标识,通过初始化分块复制或者查询分块复制任务获得String uploadId = "exampleuploadid";// 复制的源桶所在的地域Region srcBucketRegion = new Region("ap-beijing");// 复制的源桶,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String srcBucketName = "srcbucket-1250000000";// 复制的源文件路径String srcKey = "path/srckey";// 复制的目的桶所在的地域Region destBucketRegion = new Region("ap-beijing");// 复制的目的桶名, 命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String destBucketName = "destbucket-1250000000";// 复制的目的文件路径String destKey = "path/destkey";CopyPartRequest copyPartRequest = new CopyPartRequest();copyPartRequest.setSourceBucketRegion(srcBucketRegion);copyPartRequest.setSourceBucketName(srcBucketName);copyPartRequest.setSourceKey(srcKey);// 指定要拷贝的源文件的数据范围(类似content-range)copyPartRequest.setFirstByte(0L);copyPartRequest.setLastByte(1048575L);copyPartRequest.setDestinationBucketName(destBucketName);copyPartRequest.setDestinationKey(destKey);// 设置本次复制的分块的序号,从 1 开始copyPartRequest.setPartNumber(1);copyPartRequest.setUploadId(uploadId);try {CopyPartResult copyPartResult = cosClient.copyPart(copyPartRequest);PartETag partETag = copyPartResult.getPartETag();System.out.println(partETag);} catch (CosServiceException e) {e.printStackTrace();} catch (CosClientException e) {e.printStackTrace();}
参数名称 | 描述 | 类型 |
copyPartRequest | 请求 | CopyPartRequest |
参数名称 | 设置方法 | 描述 | 类型 |
destinationBucketName | set 方法 | 目标存储桶名称,Bucket 的命名格式为 BucketName-APPID ,详情请参见 命名规范 | String |
destinationKey | set 方法 | String | |
uploadId | set 方法 | 标识指定分块上传的 uploadId | String |
partNumber | set 方法 | 标识指定分块的编号,必须 >= 1 | int |
sourceBucketRegion | set 方法 | 源存储桶的地域 | Region |
sourceBucketName | set 方法 | 源存储桶的名称 | String |
sourceKey | set 方法 | String | |
firstByte | set 方法 | 源对象的首字节偏移 | Long |
lastByte | set 方法 | 源对象的最后一字节偏移 | Long |
public PartListing listParts(ListPartsRequest request)throws CosClientException, CosServiceException;
// 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建// 这里创建的 cosClient 是以复制的目的端信息为基础的// 详细代码参见本页:简单操作 -> 创建 COSClientCOSClient cosClient = createCOSClient();// 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String bucketName = "examplebucket-1250000000";// 对象键(Key)是对象在存储桶中的唯一标识。详情请参见 [对象键](https://www.tencentcloud.com/document/product/436/13324)String key = "exampleobject";// uploadId 是一次分块复制任务的唯一标识,通过初始化分块复制或者查询分块复制任务获得String uploadId = "exampleuploadid";// 用于保存已复制的分片信息List<PartETag> partETags = new LinkedList<>();PartListing partListing = null;ListPartsRequest listPartsRequest = new ListPartsRequest(bucketName, key, uploadId);do {try {partListing = cosClient.listParts(listPartsRequest);} catch (CosServiceException e) {throw e;} catch (CosClientException e) {throw e;}for (PartSummary partSummary : partListing.getParts()) {partETags.add(new PartETag(partSummary.getPartNumber(), partSummary.getETag()));}listPartsRequest.setPartNumberMarker(partListing.getNextPartNumberMarker());} while (partListing.isTruncated());
参数名称 | 设置方法 | 描述 | 类型 |
bucketName | 构造函数或 set 方法 | Bucket 的命名格式为 BucketName-APPID ,详情请参见 命名规范 | String |
key | 构造函数或 set 方法 | 对象的名称 | String |
uploadId | 构造函数或 set 方法 | 本次要查询的分块上传的 uploadId | String |
maxParts | set 方法 | 单次返回最大的条目数量,默认1000 | String |
partNumberMarker | set 方法 | 默认以 UTF-8 二进制顺序列出条目,所有列出条目从 marker 开始 | String |
encodingType | set 方法 | 规定返回值的编码方式 | String |
public CompleteMultipartUploadResult completeMultipartUpload(CompleteMultipartUploadRequest request) throws CosClientException, CosServiceException;
// 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建// 这里创建的 cosClient 是以复制的目的端信息为基础的// 详细代码参见本页:简单操作 -> 创建 COSClientCOSClient cosClient = createCOSClient();// 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String bucketName = "examplebucket-1250000000";// 对象键(Key)是对象在存储桶中的唯一标识。详情请参见 [对象键](https://www.tencentcloud.com/document/product/436/13324)String key = "exampleobject";// uploadId 是一次分块复制任务的唯一标识,通过初始化分块复制或者查询分块复制任务获得String uploadId = "exampleuploadid";// 保存已上传的分片信息,实际情况里,这里的内容是从上传分块接口中获取到的List<PartETag> partETags = new LinkedList<>();// 分片上传结束后,调用complete完成分片复制CompleteMultipartUploadRequest completeMultipartUploadRequest =new CompleteMultipartUploadRequest(bucketName, key, uploadId, partETags);try {CompleteMultipartUploadResult completeResult =cosClient.completeMultipartUpload(completeMultipartUploadRequest);System.out.println(completeResult.getRequestId());} catch (CosServiceException e) {throw e;} catch (CosClientException e) {throw e;}// 确保不再使用 cosClient 之后,关闭之cosClient.shutdown();
public void abortMultipartUpload(AbortMultipartUploadRequest request) throws CosClientException, CosServiceException;
// 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建// 这里创建的 cosClient 是以复制的目的端信息为基础的// 详细代码参见本页:简单操作 -> 创建 COSClientCOSClient cosClient = createCOSClient();// 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式String bucketName = "examplebucket-1250000000";// 对象键(Key)是对象在存储桶中的唯一标识。详情请参见 [对象键](https://www.tencentcloud.com/document/product/436/13324)String key = "exampleobject";// uploadId 是一次分块复制任务的唯一标识,通过初始化分块复制或者查询分块复制任务获得String uploadId = "exampleuploadid";AbortMultipartUploadRequest abortMultipartUploadRequest = new AbortMultipartUploadRequest(bucketName, key, uploadId);try {cosClient.abortMultipartUpload(abortMultipartUploadRequest);} catch (CosServiceException e) {e.printStackTrace();} catch (CosClientException e) {e.printStackTrace();}// 确保不再使用 cosClient 之后,关闭之cosClient.shutdown();
本页内容是否解决了您的问题?