全部產品
Search
文件中心

Object Storage Service:跨域資源共用

更新時間:Aug 30, 2018

跨域資源共用(Cross-origin resource sharing,簡稱CORS)允許Web端的應用程式訪問不屬於本域的資源。OSS提供跨域資源共用介面,方便您控制跨域訪問的許可權。

更多關於跨域資源共用的介紹,請參見開發指南中的設定跨域訪問和API參考中的PutBucketcors

設定跨域資源共用規則

以下代碼用於設定指定儲存空間的跨域資源共用規則:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. from oss2.models import BucketCors, CorsRule
  4. # 阿里雲主帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM帳號進行API訪問或日常運維,請登入 https://ram.console.aliyun.com 建立RAM帳號。
  5. auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
  6. # Endpoint以杭州為例,其它Region請按實際情況填寫。
  7. bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
  8. rule = CorsRule(allowed_origins=['*'],
  9. allowed_methods=['GET', 'HEAD'],
  10. allowed_headers=['*'],
  11. max_age_seconds=1000)
  12. # 已存在的規則將被覆蓋。
  13. bucket.put_bucket_cors(BucketCors([rule]))

獲取跨域資源共用規則

以下代碼用於獲取跨域資源共用規則:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. # 阿里雲主帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM帳號進行API訪問或日常運維,請登入 https://ram.console.aliyun.com 建立RAM帳號。
  4. auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
  5. # Endpoint以杭州為例,其它Region請按實際情況填寫。
  6. bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
  7. try:
  8. cors = bucket.get_bucket_cors()
  9. except oss2.exceptions.NoSuchCors:
  10. print('cors is not set')
  11. else:
  12. for rule in cors.rules:
  13. print('AllowedOrigins={0}'.format(rule.allowed_origins))
  14. print('AllowedMethods={0}'.format(rule.allowed_methods))
  15. print('AllowedHeaders={0}'.format(rule.allowed_headers))
  16. print('ExposeHeaders={0}'.format(rule.expose_headers))
  17. print('MaxAgeSeconds={0}'.format(rule.max_age_seconds))

刪除跨域資源共用規則

以下代碼用於刪除指定儲存空間的所有跨域資源共用規則:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. # 阿里雲主帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM帳號進行API訪問或日常運維,請登入 https://ram.console.aliyun.com 建立RAM帳號。
  4. auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
  5. # Endpoint以杭州為例,其它Region請按實際情況填寫。
  6. bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
  7. bucket.delete_bucket_cors()