最近更新时间:2024-09-05 11:30:40
// 初始化 KS3Client,详情请参见文档:https://docs.ksyun.com/documents/40559
Ks3Client client = initClient();
/*新增或者更新异步回源规则*/
// 初始化回源规则对象,依次设置回源规则版本(目前只支持V3)、是否使用默认的robots.txt、异步回源规则、同步回源规则
// 回源协议可选 V4(默认),V6
BucketMirror bucketMirror = new BucketMirror(BucketMirror.Version.V3, false, new BucketMirror.AsyncMirrorRule (
Arrays.asList("http://www.example1.com", "https://www.example2.com"), null, MirrorType.V6.toString()), null);
// 在目标桶上创建回源规则
client.putBucketMirror("bucketName", bucketMirror);
/*新增或者更新同步回源规则*/
// 设置回源规则列表,最多可配置20个回源规则
List<BucketMirror.SyncMirrorRule> syncMirrorRules = new ArrayList<>();
// 初始化同步回源规则对象
BucketMirror.SyncMirrorRule smr1 = new BucketMirror.SyncMirrorRule();
// 设置源站url,必须以http或者https开头,域名部分最多不超过256个字符,path部分最多不超过1024个字符
smr1.setMirrorUrl("https://www.example1.com");
// 使用 IPV6 协议进行回源,可选值:V4(默认),V6
smr1.setMirrorType(MirrorType.V6.toString());
// 将规则加入规则列表
syncMirrorRules.add(smr1);
// 设置另一条同步回源规则
BucketMirror.SyncMirrorRule smr2 = new BucketMirror.SyncMirrorRule();
smr2.setMirrorUrl("https://www.example1.com");
syncMirrorRules.add(smr2);
// 新增同步回源规则
BucketMirror bucketMirror = new BucketMirror(BucketMirror.Version.V3, false, null, syncMirrorRules);
client.putBucketMirror("bucketName", bucketMirror);
/*新增或者更新异步回源规则,并设置回源文件的acl为PublicRead*/
// 初始化回源规则对象,并设置异步回源规则的源站url(数量不超过10个,url必须以http或者https开头,域名部分最多不超过256个字符,path部分最多不超过1024个字符),并将文件上传权限设为公共读
// 回源协议可选 V4(默认),V6
BucketMirror bucketMirror = new BucketMirror(BucketMirror.Version.V3, false,
new BucketMirror.AsyncMirrorRule(Arrays.asList("http://www.example1.com", "https://www.example2.com"),
new BucketMirror.SavingSetting(CannedAccessControlList.PublicRead), MirrorType.V6.toString()),
null);
client.putBucketMirror("bucketName", bucketMirror);
/*新增或者更新同步回源规则,并设置回源文件的acl为PublicRead*/
List<BucketMirror.SyncMirrorRule> syncMirrorRules = new ArrayList<>();
// 初始化同步回源规则对象
BucketMirror.SyncMirrorRule smr1 = new BucketMirror.SyncMirrorRule();
// 设置源站url
smr1.setMirrorUrl("https://www.example1.com");
// 设置文件上传权限设为公共读
smr1.setSavingSetting(new BucketMirror.SavingSetting(CannedAccessControlList.PublicRead));
syncMirrorRules.add(smr1);
BucketMirror bucketMirror = new BucketMirror(BucketMirror.Version.V3, false, null, syncMirrorRules);
client.putBucketMirror("bucketName", bucketMirror);
/*新增或者更新同步回源规则,并设置回源条件*/
List<BucketMirror.SyncMirrorRule> syncMirrorRules = new ArrayList<>();
// 初始化同步回源规则对象
BucketMirror.SyncMirrorRule smr1 = new BucketMirror.SyncMirrorRule();
// 设置源站url
smr1.setMirrorUrl("https://www.example1.com");
// 设置回源触发条件,当http_codes为404,文件前缀为prefix_example时触发同步回源
smr1.setMatchCondition(new BucketMirror.MatchCondition(Arrays.asList("404"), Arrays.asList("prefix_example")));
syncMirrorRules.add(smr1);
BucketMirror bucketMirror = new BucketMirror(BucketMirror.Version.V3, false, null, syncMirrorRules);
client.putBucketMirror("bucketName", bucketMirror);
/*新增或者更新同步回源规则,并设置回源相关回源行为 */
List<BucketMirror.SyncMirrorRule> syncMirrorRules = new ArrayList<>();
BucketMirror.SyncMirrorRule smr1 = new BucketMirror.SyncMirrorRule();
smr1.setMirrorUrl("https://www.example1.com");
BucketMirror.MirrorRequestSetting setting = new BucketMirror.MirrorRequestSetting();
// 是否响应源站的3xx,如果为true则当源站返回3xx时,会向3xx location再次发送请求
// 如果为false,则当源站响应3xx时,ks3会向客户端响应424
setting.setFollow3xx(true);
// 是否将客户端传给ks3的query string透传给源站
setting.setPassQueryString(true);
// 设置回源时header的传送规则
BucketMirror.HeaderSetting hs = new BucketMirror.HeaderSetting();
// 将客户端请求ks3时所有的header都透传给源站
hs.setPassAll(true);
// 将一组指定了key的header透传给源站,目前暂不支持指定value
hs.setPassHeaders(Arrays.asList(new BucketMirror.Header("key1"), new BucketMirror.Header("key2")));
// 指定key的header不要透传给源站,目前暂不支持指定value
// 通常与 hs.setPassAll(true) 或者 hs.setPassHeaders()配合使用
hs.setRemoveHeaders(Arrays.asList(new BucketMirror.Header("key1"), new BucketMirror.Header("key2")));
// 将一组具有固定值的header透传给源站,即无论客户端请求ks3时header什么内容,此处设置的这些header都会传给源站
hs.setSetHeaders(
Arrays.asList(new BucketMirror.Header("key1", "value1"), new BucketMirror.Header("key2", "value2")));
setting.setHeaderSetting(hs);
smr1.setMirrorRequestSetting(setting);
syncMirrorRules.add(smr1);
BucketMirror bucketMirror = new BucketMirror(BucketMirror.Version.V3, false, null, syncMirrorRules);
client.putBucketMirror("bucketName", bucketMirror);
// yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
String endpoint = "yourEndpoint";
// 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 创建Ks3ClientConfig 实例。
Ks3ClientConfig config = new Ks3ClientConfig();
// 设置域名
config.setEndpoint(endpoint);
// 创建Ks3Client实例
Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
// 获取 bucketName 的镜像回源规则
BucketMirror bucketMirror = client.getBucketMirror("bucketName");
// yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
String endpoint = "yourEndpoint";
// 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 创建Ks3ClientConfig 实例。
Ks3ClientConfig config = new Ks3ClientConfig();
// 设置域名
config.setEndpoint(endpoint);
// 创建Ks3Client实例
Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
// 删除bucketName的镜像回源规则
client.deleteBucketMirror("bucketName");
纯净模式