阿里雲團隊努力不懈,力求將最新的技術內容更快地以您最熟悉的語言呈現。本文由簡體中文內容自動轉碼而成,過程無人工干預。阿里雲不保證此自動轉碼的準確性、完整性及時效性。因轉碼造成的任何內容錯誤及因此可能帶來的損失,阿里雲概不負責,敬請見諒。本文内容請以簡體中文版本為準。
全部產品
Search
文件中心

設定跨域資源共用

更新時間: Oct 30, 2018

跨域資源共用(CORS)允許web端的應用程式訪問不屬於本域的資源。OSS提供介面方便開發人員控制跨域訪問的許可權。更多關於跨域資源共用的內容請參考OSS跨域資源共用

OSS的跨域共用設定由一條或多條CORS規則群組成,每條CORS規則包含以下設定:

  • allowed_origins,允許的跨域請求的來源,如www.my-domain.com, *
  • allowed_methods,允許的跨域請求的HTTP方法(PUT/POST/GET/DELETE/HEAD)
  • allowed_headers,在OPTIONS預取指令中允許的header,如x-oss-test, *
  • expose_headers,允許使用者從應用程式中訪問的回應標頭
  • max_age_seconds, 瀏覽器對特定資源的預取(OPTIONS)請求返回結果的緩存時間

設定CORS規則

通過Bucket#cors=設定CORS規則:

 
  1. require 'aliyun/oss'
  2. client = Aliyun::OSS::Client.new(
  3. endpoint: 'endpoint',
  4. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
  5. bucket = client.get_bucket('my-bucket')
  6. bucket.cors = [
  7. CORSRule.new(
  8. :allowed_origins => ['aliyun.com', 'http://www.taobao.com'],
  9. :allowed_methods => ['PUT', 'POST', 'GET'],
  10. :allowed_headers => ['Authorization'],
  11. :expose_headers => ['x-oss-test'],
  12. :max_age_seconds => 100)
  13. ]

查看CORS規則

通過Bucket#cors查看CORS規則:

 
  1. require 'aliyun/oss'
  2. client = Aliyun::OSS::Client.new(
  3. endpoint: 'endpoint',
  4. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
  5. bucket = client.get_bucket('my-bucket')
  6. cors = bucket.cors
  7. puts cors.map(&:to_s)

清空CORS規則

通過Bucket#cors=清空CORS規則

 
  1. require 'aliyun/oss'
  2. client = Aliyun::OSS::Client.new(
  3. endpoint: 'endpoint',
  4. access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
  5. bucket = client.get_bucket('my-bucket')
  6. bucket.cors = []