跨域资源共享__Java-SDK_SDK 参考_对象存储 OSS-阿里云
跨域资源共享(CORS)允许web端的应用程序访问不属于本域的资源。OSS提供接口方便开发者控制跨域访问的权限。更多关于跨域资源共享的内容请参考 跨域访问
设定CORS规则
通过setBucketCors 方法将指定的存储空间上设定一个跨域资源共享CORS的规则,如果原规则存在则覆盖原规则。具体的规则主要通过CORSRule类来进行参数设置。代码如下:
SetBucketCORSRequest request = new SetBucketCORSRequest();
request.setBucketName(bucketName);
//CORS规则的容器,每个bucket最多允许10条规则
ArrayList<CORSRule> putCorsRules = new ArrayList<CORSRule>();
CORSRule corRule = new CORSRule();
ArrayList<String> allowedOrigin = new ArrayList<String>();
//指定允许跨域请求的来源
allowedOrigin.add( "https://www.b.com");
ArrayList<String> allowedMethod = new ArrayList<String>();
//指定允许的跨域请求方法(GET/PUT/DELETE/POST/HEAD)
allowedMethod.add("GET");
ArrayList<String> allowedHeader = new ArrayList<String>();
//控制在OPTIONS预取指令中Access-Control-Request-Headers头中指定的header是否允许。
allowedHeader.add("x-oss-test");
ArrayList<String> exposedHeader = new ArrayList<String>();
//指定允许用户从应用程序中访问的响应头
exposedHeader.add("x-oss-test1");
corRule.setAllowedMethods(allowedMethod);
corRule.setAllowedOrigins(allowedOrigin);
corRule.setAllowedHeaders(allowedHeader);
corRule.setExposeHeaders(exposedHeader);
//指定浏览器对特定资源的预取(OPTIONS)请求返回结果的缓存时间,单位为秒。
corRule.setMaxAgeSeconds(10);
//最多允许10条规则
putCorsRules.add(corRule);
request.setCorsRules(putCorsRules);
oss.setBucketCORS(request);
提示:
- 每个存储空间最多只能使用10条规则。
- AllowedOrigins和AllowedMethods都能够最多支持一个”*”通配符。”*”表示对于所有的域来源或者操作都满足。
- 而AllowedHeaders和ExposeHeaders不支持通配符。
获取CORS规则
我们可以参考存储空间的CORS规则,通过GetBucketCors方法。代码如下:
ArrayList<CORSRule> corsRules;
//获得CORS规则列表
corsRules = (ArrayList<CORSRule>) oss.getBucketCORSRules(bucketName);
for (CORSRule rule : corsRules) {
for (String allowedOrigin1 : rule.getAllowedOrigins()) {
//获得允许跨域请求源
System.out.println(allowedOrigin1);
}
for (String allowedMethod1 : rule.getAllowedMethods()) {
//获得允许跨域请求方法
System.out.println(allowedMethod1);
}
if (rule.getAllowedHeaders().size() > 0){
for (String allowedHeader1 : rule.getAllowedHeaders()) {
//获得允许头部列表
System.out.println(allowedHeader1);
}
}
if (rule.getExposeHeaders().size() > 0) {
for (String exposeHeader : rule.getExposeHeaders()) {
//获得允许头部
System.out.println(exposeHeader);
}
}
if ( null != rule.getMaxAgeSeconds()) {
System.out.println(rule.getMaxAgeSeconds());
}
}
删除CORS规则
用于关闭指定存储空间对应的CORS并清空所有规则。
// 清空bucket的CORS规则
oss.deleteBucketCORSRules(bucketName);
最后更新:2016-11-23 16:58:16
上一篇:
生命周期管理__Java-SDK_SDK 参考_对象存储 OSS-阿里云
下一篇:
设置访问日志__Java-SDK_SDK 参考_对象存储 OSS-阿里云
存储空间概览__管理存储空间_控制台用户指南_对象存储 OSS-阿里云
推通知给Android设备__推送相关_API 列表_OpenAPI 2.0_移动推送-阿里云
STS常见问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
获取子域名的解析记录列表__解析管理接口_API文档_云解析-阿里云
下载域名日志__日志信息接口_API 手册_CDN-阿里云
如何查看代金券?___代金券_代金券及推荐码_财务-阿里云
附录二 SQL函数表__附录_使用手册_分析型数据库-阿里云
DRDS常见问题__常见问题_产品使用问题_分布式关系型数据库 DRDS-阿里云
当日已备案成功,为何网站仍然无法访问?__备案成功后了解_常见问题_备案-阿里云
修改共享带宽包-增加公网IP__NAT网关相关接口_API 参考_云服务器 ECS-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云