最近更新时间: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即可。
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();
}
}
纯净模式
