バケットの CORS を設定する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

デフォルトでは、バケットに対して CORS は設定されません。既存のバケットの CORS を設定または変更するには、そのバケットを範囲とする PUT リクエストを作成し、cors クエリ文字列パラメータを使用します。適用する CORS を 1 つ以上指定した XML ドキュメントをリクエスト本文に組み込む必要があります。作成対象の新規バケットに CORS を設定することはできません。

既存のバケットに CORS 設定を適用するには FULL_CONTROL 権限が必要です。また、PUT Bucket メソッドを使用するための認証も必要です。

バケットに CORS 構成を設定する方法については、クロスオリジン リソース シェアリング(CORS)の構成をご覧ください。

クエリ文字列パラメータ

パラメータ 説明 必須
cors 既存のバケットの CORS 設定を変更する場合に使用します。リクエストの本文に CORS の XML ドキュメントを指定する必要があります。 ×

署名付き URL を作成して使用するときに指定するパラメータについては、署名付き URL クエリ文字列パラメータをご覧ください。

リクエスト ヘッダー

一般的なリクエスト ヘッダーをご覧ください。

リクエストの本文の要素

CORS 設定における XML 要素の入れ子を次の図に示します。詳しくは、図の下の表をご覧ください。

次のリクエストの本文の要素は、cors クエリ文字列パラメータを使用して既存のバケットに CORS を指定する場合にのみ適用することができます。

要素 説明
CorsConfig 1 つ以上の Cors 設定コンテナ用のコンテナ。Cors 設定を複数指定した場合、Cors 設定は CorsConfig コンテナでのリスト順に評価されます。リクエストの Origin と Method に一致する最初の Cors 設定に従って、レスポンスに追加する CORS レスポンス ヘッダーが決まります。
Cors バケットに適用される CORS 設定のコンテナ。各 Cors コンテナには複数の Origin と複数の Method を指定できます。リクエストの Origin が Cors コンテナのいずれかの Origin と一致し、リクエストの Method が Cors コンテナのいずれかの Method と一致すれば、一致していると見なされます。
Origins この Cloud Storage バケットとのクロスオリジン リソース シェアリング(CORS)が許可されている生成元のコンテナ。
Origin この Cloud Storage バケットとのクロスオリジン リソース シェアリングを許可されたオリジン例: https://origin1.example.com指定する値がワイルドカードのみの場合(<Origin>*</Origin>)、すべての生成元へのアクセス権が付与されます。
Methods 1 つ以上の HTTP メソッド要素のコンテナ。この Cloud Storage バケットとのクロスオリジン リソース シェアリングで認められているメソッドを指定します。
Method この構成で使用される HTTP メソッド。有効な値は DELETEGETHEADPOSTPUT です。 OPTIONS はプリフライト リクエストとして解釈されるため、CORS 構成でこのメソッドを指定する必要はありません。
ResponseHeaders 1 つ以上の ResponseHeader 要素のコンテナ(オプション)。
ResponseHeader ユーザー エージェントが複数の生成元の間で共有できるレスポンス ヘッダーを指定します。
MaxAgeSec この値はプリフライト リクエストへのレスポンスに使用されます。クライアント(ブラウザ)は、プリフライト リクエストを繰り返す前に、クライアント(ブラウザ)がリクエストを行うことができる秒数を指定します。(キャッシュの有効期限を示します)。 プリフライト リクエストは、リクエスト メソッドに非シンプル ヘッダーが含まれている場合、またはリクエスト メソッドが POST、GET、HEAD ではない場合に必要です。プリフライト リクエストに応じて Access-Control-Max-Age ヘッダーに値が返されます。

リクエストの構文

PUT /?cors HTTP/1.1
Host: BUCKET_NAME.storage.googleapis.com
Date: DATE_AND_TIME_OF_REQUEST
Content-Length: REQUEST_BODY_LENGTH
Content-Type: MIME_TYPE_OF_THE_BODY
Authorization: AUTHENTICATION_STRING

XML_DOCUMENT_DEFINING_CORS

レスポンス ヘッダー

使用するリクエスト ヘッダーに応じて、リクエストから返されるレスポンス ヘッダーは異なります。

レスポンスの本文の要素

このレスポンスの本文に XML ドキュメントは含まれません。

次の例では、acme-pets という名前のバケットに CORS を設定します。この CORS 設定により、2 つの生成元とそれらの生成元で許可される HTTP メソッドが設定されます。この例では、使用可能なすべての HTTP メソッドが許可されます。

リクエスト

PUT /?cors HTTP/1.1
Host: acme-pets.storage.googleapis.com
Date: Thu, 12 Mar 2012 03:38:42 GMT
Content-Length: 1320
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

<?xml version="1.0" encoding="UTF-8"?>
<CorsConfig>
  <Cors>
    <Origins>
      <Origin>http://origin1.example.com</Origin>
      <Origin>http://origin2.example.com</Origin>
    </Origins>
    <Methods>
      <Method>GET</Method>
      <Method>HEAD</Method>
      <Method>PUT</Method>
      <Method>POST</Method>
      <Method>DELETE</Method>
    </Methods>
    <ResponseHeaders>
      <ResponseHeader>x-goog-meta-foo1</ResponseHeader>
      <ResponseHeader>x-goog-meta-foo2</ResponseHeader>
    </ResponseHeaders>
    <MaxAgeSec>1800</MaxAgeSec>
  </Cors>
</CorsConfig>

レスポンス

HTTP/1.1 200 OK
Date: Thu, 12 Mar 2012 03:38:42 GMT
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate
Content-Length: 0
Content-Type: text/html