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

Object Storage Service:PutBucketCors

最終更新日:Feb 23, 2024

Object Storage Service (OSS) バケットのクロスオリジンリソース共有 (CORS) ルールを設定します。

使用上の注意

  • デフォルトで無効なデザイン

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

  • 上書きメカニズム

    PutBucketCors操作を呼び出して、既存のCORSルールが同じバケットに新しいCORSルールを設定すると、既存のルールが上書きされます。

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

    アプリケーションでCORSを使用する前に、PutBucketCors操作を呼び出してCORSルールを設定し、CORSを有効にする必要があります。

    たとえば、ブラウザのXMLHttpRequestを使用してOSSにアクセスしexample.com場合は、この操作を呼び出してXMLでCORSルールを設定する必要があります。

  • CORSルールマッチング

    OSSがバケットを宛先とするクロスオリジンリクエストまたはOPTIONSリクエストを受信すると、OSSはバケットに設定されているCORSルールを読み取り、ルールを次々と照合しようとします。 最初の一致が見つかった場合、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要素の値と一致する必要があります。

リクエスト構文

PUT /?cors HTTP/1.1
日付: GMT日付
Content-Length: ContentLength
Content-Type: application/xml
ホスト: BucketName.oss-cn-hangzhou.aliyuncs.com
権限付与: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration>
    <CORSRule>
      <AllowedOrigin> CORSリクエストを許可するオリジン </AllowedOrigin>
      <AllowedOrigin>…</AllowedOrigin>
      <AllowedMethod>HTTPメソッド </AllowedMethod>
      <AllowedMethod>…</AllowedMethod>
        <AllowedHeader> ブラウザが送信できるヘッダー </AllowedHeader>
          <AllowedHeader>…</AllowedHeader>
          <ExposeHeader> クライアントアプリからアクセスできるレスポンスのヘッダー </ExposeHeader>
          <ExposeHeader>…</ExposeHeader>
          <MaxAgeSeconds> 対戦前の応答をキャッシュする時間 </MaxAgeSeconds>
    </CORSRule>
    <CORSRule>
      ...
    </CORSRule>
...
</CORSConfiguration > 

リクエスト要素

要素

データ型

必須

説明

CORSRule

Container

必須

N/A

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

バケットには最大 10 個の CORS ルールを設定できます。 リクエストのXMLメッセージ本文のサイズは最大16 KBです。

親ノード: CORSConfiguration

AllowedOrigin

String

必須

*

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

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

親ノード: CORSRule

AllowedMethod

列挙

必須

GET

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

親ノード: CORSRule

AllowedHeader

String

任意

承認

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

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

重要

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

  • <

  • >

  • &

  • '

  • "

親ノード: CORSRule

ExposeHeader

String

任意

x-oss-test

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

重要

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

  • *

  • <

  • >

  • &

  • '

  • "

親ノード: CORSRule

MaxAgeSeconds

Integer

任意

100

指定されたリソースに対するOPTIONSプリフライト要求に対する応答をブラウザがキャッシュできる期間。 単位は秒です。

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

親ノード: CORSRule

CORSConfiguration

Container

必須

N/A

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

親ノード: なし

ResponseVary

ブール値

任意

false

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

  • true: リクエストがクロスオリジンリクエストであるか、クロスオリジンリクエストが成功したかに関係なく、Vary: Originヘッダーを返します。

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

重要

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

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

レスポンスヘッダー

PutBucketCors要求に対する応答には、共通の応答ヘッダーのみが含まれます。 詳細については、「共通HTTPヘッダー」をご参照ください。

  • リクエストの例

    PUT /?cors HTTP/1.1
    ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com
    コンテンツ-長さ: 186
    日付: 5月4日金曜日2012 03:21:12 GMT
    権限付与: OSS qn6qrrqxo2oawuk53otf ****:KU5h8YMUC78M30dXqf3JxrT *****
    <?xml version="1.0" encoding="UTF-8"?>
    <CORSConfiguration>
        <CORSRule>
          <AllowedOrigin>*</AllowedOrigin>
          <AllowedMethod>PUT</AllowedMethod>
          <AllowedMethod>GET</AllowedMethod>
          <AllowedHeader> 権限付与 </AllowedHeader>
        </CORSRule>
        <CORSRule>
          <AllowedOrigin>http://example.com</AllowedOrigin>
          <AllowedOrigin>http://example.net</AllowedOrigin>
          <AllowedMethod>GET</AllowedMethod>
          <AllowedHeader> 権限付与 </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 *****
    日付: 5月4日金曜日2012 03:21:12 GMT
    コンテンツ長: 0
    接続: キープアライブ
    サーバー: AliyunOSS
    x-oss-server-time: 94 

SDK

次のプログラミング言語のOSS SDKを使用して、PutBucketCors操作を呼び出すことができます。

エラーコード

エラーコード

HTTPステータスコード

説明

InvalidDigest

400

リクエストボディに基づいてOSSによって計算されるContent-MD5値は、リクエストヘッダーに指定されているContent-MD5値とは異なります。