全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

列举存储空间(Java)

最近更新时间:2025-08-20 20:02:36

列举所有存储空间

以下代码用于列举所有的存储空间:

public void listBuckets() {
    // 初始化 Ks3Client,参见“初始化”文档
    Ks3Client ks3Client = initKs3Client();

    try {
        // 获取所有 Bucket
        List<Bucket> buckets = ks3Client.listBuckets();
        for (Bucket bucket : buckets) {
            System.out.println("Bucket Name: " + bucket.getName());
            System.out.println("Creation Date: " + bucket.getCreationDate());
            System.out.println("Owner ID: " + bucket.getOwner().getId());
            System.out.println("Owner Name: " + bucket.getOwner().getDisplayName());
            System.out.println("Region: " + bucket.getRegion());
            System.out.println("Type: " + bucket.getTypeName());
            System.out.println("Visit Type: " + bucket.getVisitType());
            System.out.println("Data Redundancy Type: " + bucket.getDataRedundancyType());
        }
    } catch (Ks3ServiceException e) {
        System.out.println("Ks3ServiceException occurred, which means the request was made to KS3, but KS3 returned an error response for some reason.");
        System.out.println("Error Message: " + e.getErrorMessage());
        System.out.println("Error Code: " + e.getErrorCode());
        System.out.println("Request ID: " + e.getRequestId());
    } catch (Ks3ClientException e) {
        System.out.println("Ks3ClientException occurred, which means the client encountered an internal error while trying to communicate with KS3.");
        System.out.println("Error Message: " + e.getMessage());
    } finally {
        // 不再使用时,关闭 Ks3Client
        ks3Client.shutdown();
    }
}

列举符合条件的存储空间

以下代码用于列举符合条件的存储空间:

public void listBucketsWithFilter() {
    // 初始化 Ks3Client,参见“初始化”文档
    Ks3Client ks3Client = initKs3Client();

    try {
        // 获取所有 Bucket
        ListBucketsRequest request = new ListBucketsRequest();
        // 设置前缀
        request.withPrefixes("test-", "temp-");
        // 设置区域
        request.withRegions(Region.BEIJING, Region.SHANGHAI);
        // 设置项目 ID
        request.withProjectIds(Arrays.asList(0L, 1234L, 4321L));
        // 设置桶类型
        request.withBucketTypes(BucketType.Normal, BucketType.IA);
        // 设置访问类型
        request.withVisitTypes(BucketVisitType.NORMAL);
        // 设置数据冗余类型
        request.withDataRedundancyTypes(DataRedundancyType.ZRS);
        List<Bucket> buckets = ks3Client.listBuckets(request);
        for (Bucket bucket : buckets) {
            System.out.println("Bucket Name: " + bucket.getName());
            System.out.println("Creation Date: " + bucket.getCreationDate());
            System.out.println("Owner ID: " + bucket.getOwner().getId());
            System.out.println("Owner Name: " + bucket.getOwner().getDisplayName());
            System.out.println("Region: " + bucket.getRegion());
            System.out.println("Type: " + bucket.getTypeName());
            System.out.println("Visit Type: " + bucket.getVisitType());
            System.out.println("Data Redundancy Type: " + bucket.getDataRedundancyType());
        }
    } catch (Ks3ServiceException e) {
        System.out.println("Ks3ServiceException occurred, which means the request was made to KS3, but KS3 returned an error response for some reason.");
        System.out.println("Error Message: " + e.getErrorMessage());
        System.out.println("Error Code: " + e.getErrorCode());
        System.out.println("Request ID: " + e.getRequestId());
    } catch (Ks3ClientException e) {
        System.out.println("Ks3ClientException occurred, which means the client encountered an internal error while trying to communicate with KS3.");
        System.out.println("Error Message: " + e.getMessage());
    } finally {
        // 不再使用时,关闭 Ks3Client
        ks3Client.shutdown();
    }
}

SDK 1.5.0之前的版本ListBucketsRequest 中没有提供列举桶的参数,如有需求,可以自定义列举桶请求CustomListBucketsRequest,继承自ListBucketsRequest并实现相关方法,可参考SDK 1.5.0中ListBucketsRequest,列举桶时使用该CustomListBucketsRequest即可。

按项目ID列举存储空间

SDK早期版本没有提供按项目ID列举存储空间的参数,如果用户有此需求,可以使用以下方法列举存储空间。

  • 首先,在项目中添加CustomListBucketsRequest类,代码如下:

public class CustomListBucketsRequest extends ListBucketsRequest {
    private List<Long> projectIds;

    public CustomListBucketsRequest() {
    }

    public CustomListBucketsRequest(List<Long> projectIds) {
        this.projectIds = projectIds;
    }

    @Override
    public void validateParams() throws IllegalArgumentException {

    }

    @Override
    public void buildRequest(Request request) {
        request.setMethod(HttpMethod.GET);
        if (this.projectIds != null && !this.projectIds.isEmpty()) {
            request.addQueryParam("projectIds", StringUtils.join(this.projectIds, ","));
        }
    }
    
    public List<Long> getProjectIds() {
        return projectIds;
    }

    public void setProjectIds(List<Long> projectIds) {
        this.projectIds = projectIds;
    }

    public ListBucketsRequest withProjectIds(List<Long> projectIds) {
        this.projectIds = projectIds;
        return this;
    }

    public void addProjectId(Long projectId) {
        if (this.projectIds == null) {
            this.projectIds = new ArrayList<>();
        }
        this.projectIds.add(projectId);
    }
}
  • 其次,使用CustomListBucketsRequest列举存储空间,使用方法如下:

public void listBucketsWithFilter() {
    // 初始化 Ks3Client,参见“初始化”文档
    Ks3Client ks3Client = initKs3Client();

    try {
        // 获取所有 Bucket
        CustomListBucketsRequest request = new CustomListBucketsRequest();
        // 设置项目 ID
        request.withProjectIds(Arrays.asList(0L, 1234L, 4321L));
        List<Bucket> buckets = ks3Client.listBuckets(request);
        for (Bucket bucket : buckets) {
            System.out.println("Bucket Name: " + bucket.getName());
            System.out.println("Creation Date: " + bucket.getCreationDate());
            System.out.println("Owner ID: " + bucket.getOwner().getId());
            System.out.println("Owner Name: " + bucket.getOwner().getDisplayName());
            System.out.println("Region: " + bucket.getRegion());
            System.out.println("Type: " + bucket.getTypeName());
            System.out.println("Visit Type: " + bucket.getVisitType());
            System.out.println("Data Redundancy Type: " + bucket.getDataRedundancyType());
        }
    } catch (Ks3ServiceException e) {
        System.out.println("Ks3ServiceException occurred, which means the request was made to KS3, but KS3 returned an error response for some reason.");
        System.out.println("Error Message: " + e.getErrorMessage());
        System.out.println("Error Code: " + e.getErrorCode());
        System.out.println("Request ID: " + e.getRequestId());
    } catch (Ks3ClientException e) {
        System.out.println("Ks3ClientException occurred, which means the client encountered an internal error while trying to communicate with KS3.");
        System.out.println("Error Message: " + e.getMessage());
    } finally {
        // 不再使用时,关闭 Ks3Client
        ks3Client.shutdown();
    }
}

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈