碎片(分片)管理

更新时间: 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);