View a markdown version of this page

付録: OPTIONS オブジェクト - Amazon Simple Storage Service

付録: OPTIONS オブジェクト

説明

ブラウザは、このプリフライトリクエストを Amazon S3 に送信して、特定のオリジン、HTTP メソッド、ヘッダーを使用して実際のリクエストを送信できるかどうかを判断できます。

Amazon S3 は、バケットに cors サブリソースを追加できるようにすることで、クロスオリジンリソース共有 (CORS) をサポートしています。ブラウザがこのプリフライトリクエストを送信すると、Amazon S3 は cors 設定で定義されたルールを評価して応答します。

バケットで cors が有効になっていない場合、Amazon S3 は 403 Forbidden レスポンスを返します。

CORS の詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Cross-Origin Resource Sharing の有効化」を参照してください。

リクエスト

構文

OPTIONS /ObjectName HTTP/1.1 Host: BucketName.s3.amazonaws.com Origin: Origin Access-Control-Request-Method: HTTPMethod Access-Control-Request-Headers: RequestHeader

リクエストパラメータ

このオペレーションでは、特定のリクエストパラメータは導入されませんが、実際のリクエストに必要なリクエストパラメータが含まれる場合があります。

リクエストヘッダー

名前 説明 必須
Origin

Amazon S3 へのクロスオリジンリクエストの発信元を識別します。例えば、http://www.example.com などです。

タイプ: 文字列

デフォルト: なし

はい
Access-Control-Request-Method

実際のリクエストで使用される HTTP メソッドを識別します。

タイプ: 文字列

デフォルト: なし

はい
Access-Control-Request-Headers

実際のリクエストで送信される HTTP ヘッダーのカンマ区切りリスト。

例えば、サーバー側の暗号化を使用してオブジェクトを配置する場合、このプリフライトリクエストは、リクエストに x-amz-server-side-encryption ヘッダーを含めることができるかどうかを判断します。

タイプ: 文字列

デフォルト: なし

いいえ

リクエストの要素

このオペレーションの実装では、リクエストパラメータは使用しません。

レスポンス

レスポンスヘッダー

ヘッダー 説明
Access-Control-Allow-Origin

リクエストで送信されたオリジン。リクエストで指定されたオリジンが許可されていない場合、Amazon S3 はレスポンスにこのヘッダーを含めません。

タイプ: 文字列

Access-Control-Max-Age

プリフライトリクエストの結果をキャッシュできる時間 (秒単位)。

タイプ: 文字列

Access-Control-Allow-Methods

元のリクエストで送信された HTTP メソッド。リクエストのメソッドが許可されていない場合、Amazon S3 はレスポンスにこのヘッダーを含めません。

タイプ: 文字列

Access-Control-Allow-Headers

ブラウザが実際のリクエストで送信できる HTTP ヘッダーのカンマ区切りリスト。リクエストされたヘッダーのいずれかが許可されていない場合、Amazon S3 はレスポンスにそのヘッダーを含めません。また、レスポンスには Access-Control プレフィックスが付いたヘッダーは含まれません。

タイプ: 文字列

Access-Control-Expose-Headers

HTTP ヘッダーのカンマ区切りリスト。このヘッダーにより、JavaScript クライアントは実際のリクエストへのレスポンスでこれらのヘッダーにアクセスできるようになります。

タイプ: 文字列

レスポンス要素

このオペレーションの実装では、レスポンス要素は返されません。

例: cors が有効なバケットにプリフライト OPTIONS リクエストを送信する

ブラウザは、このプリフライトリクエストを Amazon S3 に送信して、http://www.example.com オリジンから examplebucket という名前の Amazon S3 バケットに実際の PUT リクエストを送信できるかどうかを判断できます。

リクエスト例

OPTIONS /exampleobject HTTP/1.1 Host: examplebucket.s3.amazonaws.com Origin: http://www.example.com Access-Control-Request-Method: PUT

レスポンス例

HTTP/1.1 200 OK x-amz-id-2: 6SvaESv3VULYPLik5LLl7lSPPtSnBvDdGmnklX1HfUl7uS2m1DF6td6KWKNjYMXZ x-amz-request-id: BDC4B83DF5096BBE Date: Wed, 21 Aug 2012 23:09:55 GMT Etag: "1f1a1af1f1111111111111c11aed1da1" Access-Control-Allow-Origin: http://www.example.com Access-Control-Allow-Methods: PUT Access-Control-Expose-Headers: x-amz-request-id Content-Length: 0 Server: AmazonS3