全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
对象存储 OSS

跨域资源共享

更新时间:2017-06-07 13:26:11

跨域资源共享(CORS)允许web端的应用程序访问不属于本域的资源。OSS提供接口方便开发者控制跨域访问的权限。

设定CORS规则

通过setBucketCors 方法将指定的存储空间上设定一个跨域资源共享CORS的规则,如果原规则存在则覆盖原规则。具体的规则主要通过CORSRule类来进行参数设置。代码如下:

  1. using Aliyun.OSS;
  2. // 初始化OssClient
  3. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  4. var req = new SetBucketCorsRequest(bucketName);
  5. var r1 = new CORSRule();
  6. //指定允许跨域请求的来源
  7. r1.AddAllowedOrigin("http://www.a.com");
  8. //指定允许的跨域请求方法(GET/PUT/DELETE/POST/HEAD)
  9. r1.AddAllowedMethod("POST");
  10. //控制在OPTIONS预取指令中Access-Control-Request-Headers头中指定的header是否允许。
  11. r1.AddAllowedHeader("*");
  12. //指定允许用户从应用程序中访问的响应头
  13. r1.AddExposeHeader("x-oss-test");
  14. req.AddCORSRule(r1);
  15. client.SetBucketCors(req);

提示:

注意

  • 每个存储空间最多只能使用10条规则。
  • AllowedOrigins和AllowedMethods都能够最多支持一个”*”通配符。”*”表示对于所有的域来源或者操作都满足。
  • 而AllowedHeaders和ExposeHeaders不支持通配符。

获取CORS规则

我们可以参考存储空间的CORS规则,通过GetBucketCors方法。代码如下:

  1. using Aliyun.OSS;
  2. // 初始化OssClient
  3. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  4. var rules = client.GetBucketCors(bucketName);
  5. foreach (var rule in rules)
  6. {
  7. Console.WriteLine("AllowedOrigins:{0}", rule.AllowedOrigins);
  8. Console.WriteLine("AllowedMethods:{0}", rule.AllowedMethods);
  9. Console.WriteLine("AllowedHeaders:{0}", rule.AllowedHeaders);
  10. Console.WriteLine("ExposeHeaders:{0}", rule.ExposeHeaders);
  11. Console.WriteLine("MaxAgeSeconds:{0}", rule.MaxAgeSeconds);
  12. }

提示:

删除CORS规则

用于关闭指定存储空间对应的CORS并清空所有规则。

  1. using Aliyun.OSS;
  2. // 初始化OssClient
  3. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  4. // 清空存储空间的CORS规则
  5. client.DeleteBucketCors(bucketName);

提示:

本文导读目录