碎片(分片)管理
更新时间: 2020-03-24
目录
本节介绍如何创管理碎片。
主要包括碎片(分片)的查询和碎片(分片)的清理,查询主要分为列举所有已上传的碎片、分页列举所有已上传的碎片。
分片列表
列举所有已上传的碎片
默认情况下,listParts只能一次列举1000个碎片。当分片数量大于1000时,请使用以下代码列举所有已上传、的碎片:
// Endpoint以华北三为例,其它Region请按实际情况填写。
String endpoint = "oss.cn-north-3.inspurcloudoss.com";
String accessKey = "<yourAccessKey>";
String secretKey = "<yourSecretKey>";
String bucketName = "<yourBucketName>";
String key = "<yourObjectName>";
//创建OSSClient实例
OSSClientImpl ossClient = new OSSClientImpl(endpoint, accessKey, secretKey);
//objectUploadId是区别上传任务的重要标识,在分片上传初始化文件的时候返回
//获取碎片列表,大于1000的情况
ListPartsRequest listPartsRequest = new ListPartsRequest(bucketName, key, "<uploadId>");
PartListing partListing;
do {
partListing = ossClient.listParts(listPartsRequest);
for (PartSummary part : partListing.getParts()) {
// 获取碎片号。
part.getPartNumber();
// 获取碎片数据大小。
part.getSize();
// 获取碎片的ETag。
part.getETag();
// 获取碎片的最后修改时间。
part.getLastModified();
}
// 指定碎片列表的起始位置,只有碎片号大于该参数值的碎片才会被列出。
listPartsRequest.setPartNumberMarker(partListing.getNextPartNumberMarker());
} while (partListing.isTruncated());
分页列举所有已上传的碎片
以下代码用于指定每页碎片的数量,分页列举所有碎片
// Endpoint以华北三为例,其它Region请按实际情况填写。
String endpoint = "oss.cn-north-3.inspurcloudoss.com";
String accessKey = "<yourAccessKey>";
String secretKey = "<yourSecretKey>";
String bucketName = "<yourBucketName>";
String key = "<yourObjectName>";
//创建OSSClient实例
OSSClientImpl ossClient = new OSSClientImpl(endpoint, accessKey, secretKey);
//objectUploadId是区别上传任务的重要标识,在分片上传初始化文件的时候返回
//获取碎片列表
ListPartsRequest listPartsRequest = new ListPartsRequest(bucketName, key, "<uploadId>");
// 设置每一页的碎片数量为20
listPartsRequest.setMaxParts(20);
ListPartsResultBean partListing;
do {
partListing = ossClient.listParts(listPartsRequest);
for (Part part : partListing.getParts()) {
// 获取碎片号。
System.out.println(part.getPartNumber());
// 获取碎片数据大小。
System.out.println(part.getSize());
// 获取碎片的ETag。
System.out.println(part.getETag());
// 获取碎片的最后修改时间。
System.out.println(part.getLastModified());
}
// 指定碎片列表的起始位置,只有碎片号大于该参数值的碎片才会被列出。
listPartsRequest.setPartNumberMarker(partListing.getNextPartNumberMarker());
} while (partListing.getTruncated());
清理分片
简单清理碎片,清理桶下的所有碎片
以下代码用于清理碎片:
// Endpoint以华北三为例,其它Region请按实际情况填写。
String endpoint = "oss.cn-north-3.inspurcloudoss.com";
String accessKey = "<yourAccessKey>";
String secretKey = "<yourSecretKey>";
String bucketName = "<yourBucketName>";
//创建OSSClient实例
OSSClientImpl ossClient = new OSSClientImpl(endpoint, accessKey, secretKey);
//清理碎片
ossClient.cleanParts(bucketName);