全部產品
Search
文件中心

Object Storage Service:跨域資源共用

更新時間:Aug 30, 2018

跨域資源共用(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);

提示: