-
Notifications
You must be signed in to change notification settings - Fork 146
/
Copy pathBucketRefererDemo.java
81 lines (67 loc) · 3.05 KB
/
BucketRefererDemo.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
package com.qcloud.cos.demo;
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.model.BucketRefererConfiguration;
import com.qcloud.cos.region.Region;
public class BucketRefererDemo {
private static String secretId = "AKIDXXXXXXXX";
private static String secretKey = "1A2Z3YYYYYYYYYY";
private static String cosRegion = "ap-guangzhou";
private static COSClient cosClient = null;
// bucket名需包含appid
private static String bucketName = "examplebucket-12500000000";
public static void main(String[] args) {
createCosClient();
try {
setBucketReferer();
getBucketReferer();
} catch (Exception e) {
shutdown();
}
}
private static void createCosClient() {
// 1 初始化用户身份信息(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 = new COSClient(cred, clientConfig);
}
private static void shutdown() {
if (cosClient != null) {
cosClient.shutdown();
cosClient = null;
}
}
private static void setBucketReferer() {
BucketRefererConfiguration configuration = new BucketRefererConfiguration();
// 启用防盗链
configuration.setStatus(BucketRefererConfiguration.DISABLED);
// 设置防盗链类型为白名单
//configuration.setRefererType(BucketRefererConfiguration.WHITELIST);
// 设置防盗链类型为黑名单 (与白名单二选一)
configuration.setRefererType(BucketRefererConfiguration.BLACKLIST);
// 填写要设置的域名
configuration.addDomain("test.com");
configuration.addDomain("test.1.com");
// (可选)设置是否允许空防盗链访问,缺省就是 DENY
configuration.setEmptyReferConfiguration(BucketRefererConfiguration.DENY);
// configuration.setEmptyReferConfiguration(BucketRefererConfiguration.ALLOW);
cosClient.setBucketRefererConfiguration(bucketName, configuration);
}
private static void getBucketReferer() {
BucketRefererConfiguration configuration = cosClient.getBucketRefererConfiguration(bucketName);
if (configuration == null) {
System.out.printf("bucket %s does not have referer configuration\n", bucketName);
return;
}
System.out.printf("status: %s\n", configuration.getStatus());
System.out.printf("referer type: %s\n", configuration.getRefererType());
System.out.printf("empty referer config: %s\n", configuration.getEmptyReferConfiguration());
for (String domain : configuration.getDomainList()) {
System.out.printf("domain: %s\n", domain);
}
}
}