edit-icon download-icon

CORS

最終更新日: Aug 29, 2017

CORS(Cross-origin Resource Sharing)は Web アプリケーションが他のドメインのリソースにアクセスできるように許可します。 OSSは開発者がクロスオリジンへのアクセス許可を容易に制御するためのインタフェースを提供します。 CORSの詳細については OSS CORS を参照してください。

OSS CORS設定には1つ以上のCORSルールが含まれています。 各CORSルールには次のパラメータが含まれます。

  • allowed_origins:cross-originリクエストに許可されたドメイン名 例、www.my-domain.com,*
  • allowed_methods:cross-originリクエストに許可されるHTTPメソッド(PUT/POST/GET/DELETE/HEAD)
  • allowed_headers:prefetch コマンド(OPTIONS)で許可されるヘッダー(例、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 = []