-
Notifications
You must be signed in to change notification settings - Fork 146
/
Copy pathBucketDemo.java
125 lines (111 loc) · 4.6 KB
/
BucketDemo.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package com.qcloud.cos.demo;
import java.util.ArrayList;
import java.util.List;
import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.exception.CosServiceException;
import com.qcloud.cos.model.Bucket;
import com.qcloud.cos.model.CannedAccessControlList;
import com.qcloud.cos.model.CreateBucketRequest;
import com.qcloud.cos.model.ListBucketsRequest;
import com.qcloud.cos.model.ListBucketsResult;
import com.qcloud.cos.region.Region;
/**
* 展示了创建bucket, 删除bucket, 查询bucket是否存在的demo
*
*/
public class BucketDemo {
private static String secretId = System.getenv("SECRETID");
private static String secretKey = System.getenv("SECRETKEY");
private static String bucketName = System.getenv("BUCKET_NAME");
private static String cosRegion = System.getenv("REGION");
private static COSClient cosClient = createCli();
public static void main(String[] args) {
try {
createBucketDemo();
judgeBucketExistDemo();
listBuckets();
deleteBucketDemo();
} catch (Exception e) {
e.printStackTrace();
} finally {
cosClient.shutdown();
}
}
private static COSClient createCli() {
// 1 初始化用户身份信息(appid, secretId, secretKey)
COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
// 2 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224
ClientConfig clientConfig = new ClientConfig(new Region(cosRegion));
// 3 生成cos客户端
COSClient cosclient = new COSClient(cred, clientConfig);
return cosclient;
}
// 创建bucket
private static void createBucketDemo() {
CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
// 设置bucket的权限为PublicRead(公有读私有写), 其他可选有私有读写, 公有读私有写
createBucketRequest.setCannedAcl(CannedAccessControlList.PublicRead);
Bucket bucket = cosClient.createBucket(createBucketRequest);
System.out.println("create bucket, bucketName is " + bucket.getName());
}
// 删除bucket, 只用于空bucket, 含有数据的bucket需要在删除前清空删除。
private static void deleteBucketDemo() {
// 删除bucket
cosClient.deleteBucket(bucketName);
System.out.println("delete bucket, bucketName is " + bucketName);
}
// 查询bucket是否存在
private static void judgeBucketExistDemo() {
// 判断bucket是否存在
boolean isExist = cosClient.doesBucketExist(bucketName);
if (isExist) {
System.out.println(bucketName + " is exist");
} else {
System.out.println(bucketName + " is not exist");
}
}
private static void listBuckets() {
List<Bucket> buckets = cosClient.listBuckets();
for (Bucket bucket : buckets) {
System.out.println(bucket.getName());
System.out.println(bucket.getLocation());
System.out.println(bucket.getOwner());
System.out.println(bucket.getType());
System.out.println(bucket.getBucketType());
}
}
private static void listAllBucket() {
ListBucketsRequest listBucketsRequest = new ListBucketsRequest();
List<Bucket> buckets = new ArrayList<>();
while (true) {
ListBucketsResult result = cosClient.getService(listBucketsRequest);
buckets.addAll(result.getBuckets());
if (result.isTruncated()) {
listBucketsRequest.setMarker(result.getNextMarker());
} else {
break;
}
}
for (Bucket bucket : buckets) {
System.out.println(bucket.getName());
System.out.println(bucket.getLocation());
}
System.out.println("finish list all buckets, totally " + buckets.size() + " buckets.");
}
//创多AZ桶
private static void createMAZBucketDemo() {
CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
try {
Bucket bucket = cosClient.createMAZBucket(createBucketRequest);
System.out.println("create MAZ bucket, bucketName is " + bucket.getName());
} catch (CosServiceException cse) {
cse.printStackTrace();
} catch (CosClientException cce) {
cce.printStackTrace();
}
}
}