すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:PutBucketCors

最終更新日:Aug 02, 2025

Object Storage Service (OSS) バケットのオリジン間リソース共有 (CORS) ルールを構成します。

使用上の注意

  • デフォルトで無効化された設計

    デフォルトでは、バケットに対して CORS は無効になっています。すべてのクロスオリジンリクエストは許可されていません。

  • 上書きメカニズム

    同一の既存の CORS ルールを持つバケットに対して PutBucketCors オペレーションを呼び出して新しい CORS ルールを構成すると、既存のルールは上書きされます。

  • アプリケーションでの CORS の使用

    アプリケーションで CORS を使用するには、PutBucketCors オペレーションを呼び出して CORS を有効にする CORS ルールを構成する必要があります。

    たとえば、example.com がブラウザの XMLHttpRequest を使用して OSS にアクセスできるようにするには、このオペレーションを呼び出して XML で CORS ルールを構成する必要があります。

  • CORS ルールの一致

    OSS がバケット宛てのクロスオリジンリクエストまたは OPTIONS リクエストを受信すると、OSS はバケットに構成されている CORS ルールを読み取り、ルールを 1 つずつ照合しようとします。 OSS が最初の一致を見つけると、OSS は対応するヘッダーを返します。 リクエストが CORS ルールのいずれにも一致しない場合、OSS はレスポンスに CORS ヘッダーを含めません。

    OSS は、クロスオリジンリクエストまたは OPTIONS リクエストが次の条件を満たす場合にのみ、CORS ルールに一致すると見なします。

    • クロスオリジンリクエストが送信されたオリジンが、CORS ルールの 1 つの AllowedOrigin 要素の値と一致します。

    • リクエストメソッド (GET や PUT など) または OPTIONS リクエストの Access-Control-Request-Method ヘッダーに対応するメソッドは、1 つの AllowedMethod 項目と一致する必要があります。

    • OPTIONS リクエストの Access-Control-Request-Headers に含まれる各ヘッダーは、CORS ルールの 1 つの AllowedHeader 要素の値と一致する必要があります。

権限

デフォルトで、Alibaba Cloud アカウントはすべての権限を持っています。 Alibaba Cloud アカウント配下の RAM ユーザーまたは RAM ロールは、デフォルトでは権限がありません。 Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを使用して操作権限を付与する必要があります。

API

アクション

定義

PutBucketCors

oss:PutBucketCors

バケットのオリジン間リソース共有 (CORS) ルールを構成します。

リクエスト構文

PUT /?cors HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration>
    <CORSRule>
      <AllowedOrigin>the origin you want allow CORS request from</AllowedOrigin> // CORS リクエストを許可するオリジン
      <AllowedOrigin>…</AllowedOrigin>
      <AllowedMethod>HTTP method</AllowedMethod> // HTTP メソッド
      <AllowedMethod>…</AllowedMethod>
        <AllowedHeader> headers that allowed browser to send</AllowedHeader> // ブラウザが送信できるヘッダー
          <AllowedHeader>…</AllowedHeader>
          <ExposeHeader> headers in response that can access from client app</ExposeHeader> // クライアントアプリからアクセスできるレスポンスのヘッダー
          <ExposeHeader>…</ExposeHeader>
          <MaxAgeSeconds>time to cache pre-fight response</MaxAgeSeconds> // プリフライトリクエストのレスポンスをキャッシュする時間
    </CORSRule>
    <CORSRule>
      ...
    </CORSRule>
...
</CORSConfiguration >

リクエスト要素

要素

タイプ

必須

説明

CORSRule

コンテナー

はい

N/A

CORS ルールを格納するコンテナー。

1 つのバケットに対して最大 20 個の CORS ルールを構成できます。 リクエストの XML メッセージ本文のサイズは最大 16 KB です。

親ノード: CORSConfiguration

AllowedOrigin

文字列

はい

*

クロスオリジンリクエストが許可されるオリジン。 複数の要素を使用して、複数の許可されたオリジンを指定できます。

AllowedOrigin のワイルドカードとしてアスタリスク (*) を 1 つだけ使用できます。 AllowedOrigin をアスタリスク (*) に設定すると、すべてのクロスオリジンリクエストが許可されます。

親ノード: CORSRule

AllowedMethod

列挙型

はい

GET

許可されるクロスオリジンリクエストメソッド。 有効な値: GET、PUT、DELETE、POST、HEAD。

親ノード: CORSRule

AllowedHeader

文字列

いいえ

Authorization

OPTIONS プリフライトリクエストの Access-Control-Request-Headers で指定されたヘッダーが許可されるかどうかを指定します。

Access-Control-Request-Headers で指定された各ヘッダーは、AllowedHeader 要素の値と一致する必要があります。

重要

AllowedHeader のワイルドカードとしてアスタリスク (*) を 1 つだけ使用できます。 次の文字はサポートされていません。

  • <

  • >

  • &

  • '

  • "

親ノード: CORSRule

ExposeHeader

文字列

いいえ

x-oss-test

JavaScript の XMLHttpRequest オブジェクトなど、アプリケーションからの許可されたアクセスリクエストのレスポンスヘッダー。

重要

次の文字はサポートされていません。

  • *

  • <

  • >

  • &

  • '

  • "

親ノード: CORSRule

MaxAgeSeconds

整数

いいえ

100

ブラウザが指定されたリソースに対する OPTIONS プリフライトリクエストへのレスポンスをキャッシュできる期間。 単位: 秒。

CORS ルールには MaxAgeSeconds 要素を 1 つだけ指定できます。

親ノード: CORSRule

CORSConfiguration

コンテナー

はい

N/A

バケットの CORS 構成を格納するコンテナー。

親ノード: なし

ResponseVary

ブール値

いいえ

false

Vary: Origin ヘッダーを返すかどうかを指定します。 有効な値:

  • true: リクエストがクロスオリジンリクエストであるかどうかにかかわらず、クロスオリジンリクエストが成功したかどうかにかかわらず、Vary: Origin ヘッダーを返します。

  • false: Vary: Origin ヘッダーを返しません。

重要

この要素は、少なくとも 1 つの CORS ルールが構成されている場合にのみ有効です。

この操作の共通リクエストヘッダーの詳細については、「共通 HTTP ヘッダー」をご参照ください。

レスポンスヘッダー

PutBucketCors リクエストへのレスポンスには、共通レスポンスヘッダーのみが含まれます。 詳細については、「共通 HTTP ヘッダー」をご参照ください。

  • リクエスト例

    PUT /?cors HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Content-Length: 186
    Date: Fri, 04 May 2012 03:21:12 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    <?xml version="1.0" encoding="UTF-8"?>
    <CORSConfiguration>
        <CORSRule>
          <AllowedOrigin>*</AllowedOrigin>
          <AllowedMethod>PUT</AllowedMethod>
          <AllowedMethod>GET</AllowedMethod>
          <AllowedHeader>Authorization</AllowedHeader>
        </CORSRule>
        <CORSRule>
          <AllowedOrigin>http://example.com</AllowedOrigin>
          <AllowedOrigin>http://example.net</AllowedOrigin>
          <AllowedMethod>GET</AllowedMethod>
          <AllowedHeader> Authorization</AllowedHeader>
          <ExposeHeader>x-oss-test</ExposeHeader>
          <ExposeHeader>x-oss-test1</ExposeHeader>
          <MaxAgeSeconds>100</MaxAgeSeconds>
        </CORSRule>
        <ResponseVary>false</ResponseVary>
    </CORSConfiguration >
  • レスポンス例

    HTTP/1.1 200 OK
    x-oss-request-id: 50519080C4689A033D0*****
    Date: Fri, 04 May 2012 03:21:12 GMT
    Content-Length: 0
    Connection: keep-alive
    Server: AliyunOSS
    x-oss-server-time: 94

SDK

次のプログラミング言語の OSS SDK を使用して、PutBucketCors オペレーションを呼び出すことができます。

ossutil

PutBucketCors オペレーションに対応する ossutil コマンドについては、「put-bucket-cors」をご参照ください。

エラーコード

エラーコード

HTTP ステータスコード

説明

InvalidDigest

400

リクエスト本文に基づいて OSS によって計算された Content-MD5 値が、リクエストヘッダーで指定された Content-MD5 値と異なります。