POST Object
説明
POST オペレーションは、HTML フォームを使用して指定されたバケットにオブジェクトを追加します。POST は、バケットにオブジェクトを配置する方法としてブラウザベースのアップロードを可能にする PUT の代替形式です。HTTP ヘッダーを介して PUT に渡されるパラメータは、代わりにマルチパート/フォームデータエンコードされたメッセージ本文のフォームフィールドとして POST に渡されます。オブジェクトをバケットに追加するには、バケットへの WRITE アクセス権が必要です。Amazon S3 は部分的なオブジェクトを保存しません。成功したレスポンスを受け取った場合は、オブジェクト全体が保存されたことを確信できます。
Amazon S3 は分散システムです。バケットのバージョニングを有効にしていない場合、Amazon S3 が同じオブジェクトに対して複数の書き込みリクエストを同時に受信すると、最後に書き込まれたバージョンのオブジェクトのみが保存されます。
ネットワークのトラバース中にデータが破損しないようにするには、Content-MD5 フォームフィールドを使用します。このフォームフィールドを使用すると、Amazon S3 は指定された MD5 値に対してオブジェクトをチェックします。一致しない場合、Amazon S3 はエラーを返します。さらに、オブジェクトを Amazon S3 に投稿しながら MD5 値を計算し、返された ETag を計算された MD5 値と比較できます。ETag は、オブジェクトのコンテンツに加えた変更のみを反映し、メタデータに加えた変更は反映しません。
注記
リクエスト本文を送信する前にリクエストヘッダーを送信するようにアプリケーションを設定するには、HTTP ステータスコード 100 (続行) を使用します。POST オペレーションの場合、このステータスコードを使用すると、メッセージがヘッダーに基づいて拒否された場合 (認証の失敗やリダイレクトなど)、メッセージ本文の送信を回避できます。HTTP ステータスコード 100 (続行) の詳細については、http://www.ietf.org/rfc/rfc2616.txt
Amazon S3 は、S3 バケットにコピーされたすべての新しいオブジェクトを自動的に暗号化します。アップロードされたオブジェクトの暗号化設定は、送信先バケットのデフォルトの暗号化設定によって異なります。デフォルトでは、すべてのバケットには、Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) を使用するデフォルトの暗号化設定が指定されています。
送信先バケットに、AWS Key Management Service (AWS KMS) キーを使用するサーバー側の暗号化 (SSE-KMS)、AWS KMS キーを使用する二層式サーバー側の暗号化 (DSSE-KMS)、または顧客提供の暗号化キーを使用する暗号化 (SSE-C) が適用されている場合、Amazon S3 は対応する KMS キーまたは顧客提供のキーを使用して、アップロードされたオブジェクトを暗号化します。オブジェクトをアップロードするときに、アップロードされたオブジェクトの暗号化設定を変更する場合は、サーバー側の暗号化のタイプを指定できます。SSE-S3、SSE-KMS、DSSE-KMS、または SSE-C を設定できます。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「サーバー側の暗号化を使用したデータの保護」を参照してください。
重要
リクエストを作成するときは、file フィールドがフォームの最後のフィールドであることを確認してください。
リクエスト
構文
POST / HTTP/1.1 Host:destinationBucket.s3.amazonaws.com User-Agent:browser_dataAccept:file_typesAccept-Language:RegionsAccept-Encoding:encodingAccept-Charset:character_setKeep-Alive: 300 Connection: keep-alive Content-Type: multipart/form-data; boundary=9431149156168 Content-Length:length--9431149156168 Content-Disposition: form-data; name="key"acl--9431149156168 Content-Disposition: form-data; name="tagging" <Tagging><TagSet><Tag><Key>Tag Name</Key><Value>Tag Value</Value></Tag></TagSet></Tagging> --9431149156168 Content-Disposition: form-data; name="success_action_redirect"success_redirect--9431149156168 Content-Disposition: form-data; name="Content-Type"content_type--9431149156168 Content-Disposition: form-data; name="x-amz-meta-uuid"uuid--9431149156168 Content-Disposition: form-data; name="x-amz-meta-tag"metadata--9431149156168 Content-Disposition: form-data; name="AWSAccessKeyId"access-key-id--9431149156168 Content-Disposition: form-data; name="Policy"encoded_policy--9431149156168 Content-Disposition: form-data; name="Signature"signature= --9431149156168 Content-Disposition: form-data; name="file"; filename="MyFilename.jpg" Content-Type: image/jpegfile_content--9431149156168 Content-Disposition: form-data; name="submit" Upload to Amazon S3 --9431149156168--
リクエストパラメータ
オペレーションの実装では、リクエストパラメータを使用しません。
フォームのフィールド
このオペレーションでは、次のフォームフィールドを使用できます。
| 名前 | 説明 | 必須 |
|---|---|---|
AWSAccessKeyId |
ポリシー内の一連の制約を満たすリクエストに対して匿名ユーザーアクセスを付与するバケット所有者の AWS アクセスキー ID。 タイプ: 文字列 デフォルト: なし 制約: ポリシードキュメントがリクエストに含まれる場合に必要です。 |
条件付き |
acl |
指定された Amazon S3 のアクセスコントロールリスト (ACL)。指定された ACL が有効でない場合、エラーが生成されます。ACL の詳細については、「Amazon Simple Storage Service ユーザーガイド」の「アクセスコントロールリスト (ACL) の概要」を参照してください。 タイプ: 文字列 デフォルト: プライベート 有効な値: |
いいえ |
Cache-Control, Content-Type,
Content-Disposition, Content-Encoding,
Expires |
REST 固有ヘッダー。詳細については、「PutObject」を参照してください。 タイプ: 文字列 デフォルト: なし |
いいえ |
file |
ファイルまたはテキストコンテンツ。 ファイルまたはテキストコンテンツはフォームの最後のフィールドでなければなりません。 複数のファイルを一度にアップロードすることはできません。 タイプ: ファイルまたはテキストコンテンツ デフォルト: なし |
はい |
key |
アップロードされたキーの名前。 ユーザーによって指定されたファイル名を使用するには、 詳細については、「Amazon Simple Storage Service ユーザーガイド」の「オブジェクトメタデータの使用」を参照してください。 タイプ: 文字列 デフォルト: なし |
はい |
policy |
リクエストで許可されているものについて説明するセキュリティポリシー。セキュリティポリシーがないリクエストは匿名と見なされ、誰でも書き込むことができるバケットでのみ動作します。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「HTML フォーム」と「アップロード例」を参照してください。 タイプ: 文字列 デフォルト: なし 制約: バケットがパブリックに書き込み可能でない場合は、セキュリティポリシーが必要です。 |
条件付き |
success_action_redirect, redirect |
アップロードが成功したときにクライアントがリダイレクトされる URL。
Amazon S3 が URL を解釈できない場合、フィールドが存在しないかのように動作します。 アップロードが失敗した場合、Amazon S3 はエラーを表示し、ユーザーを URL にリダイレクトしません。 タイプ: 文字列 デフォルト: なし 注記
|
いいえ |
success_action_status |
このフィールドは、 値が 値が 値が設定されていないか有効でない値が設定されている場合は、Amazon S3 は空のドキュメントとステータスコード 204 を返します。 タイプ: 文字列 デフォルト: なし |
いいえ |
tagging |
オブジェクトに追加する指定されたタグのセット。タグを追加するには、次のエンコーディングスキームを使用します。
詳細については、「Amazon Simple Storage Service ユーザーガイド」の「オブジェクトのタグ付け」を参照してください。 タイプ: 文字列 デフォルト: なし |
いいえ |
x-amz-storage-class |
オブジェクトの保存に使われるストレージクラス。クラスを指定しない場合、Amazon S3 はデフォルトのストレージクラス タイプ: 文字列 デフォルト: 有効な値: |
いいえ |
x-amz-meta-* |
このプレフィックスで始まるヘッダーはユーザー定義メタデータです。それぞれが保存され、キーと値のペアのセットとして返されます。Amazon S3 はユーザー定義メタデータを検証または解釈しません。詳細については、「PutObject」を参照してください。 タイプ: 文字列 デフォルト: なし |
いいえ |
x-amz-security-token |
Amazon DevPay のセキュリティトークン。 Amazon DevPay を使用する各リクエストでは、製品トークン用とユーザートークン用の 2 つの タイプ: 文字列 デフォルト: なし |
いいえ |
x-amz-signature |
(AWS 署名バージョン 4) セキュリティポリシーの HMAC-SHA256 ハッシュ。 タイプ: 文字列 デフォルト: なし |
条件付き |
x-amz-website-redirect-location
|
バケットがウェブサイトとして設定されている場合、このフィールドはこのオブジェクトに対するリクエストを、同じバケット内の別のオブジェクトか外部 URL にリダイレクトします。Amazon S3 はこのヘッダー値をオブジェクトメタデータに保存します。オブジェクトメタデータの詳細については、「Amazon Simple Storage Service ユーザーガイド」の「オブジェクトキーとメタデータ」を参照してください。 次の例では、リクエストヘッダーは同じバケット内のオブジェクト (
次の例では、リクエストヘッダーによって、オブジェクトのリダイレクト先が別のウェブサイトに設定されています。
Amazon S3 でのウェブサイトのホスティングに関する詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 でのウェブサイトのホスティング」および「ウェブサイトページのリダイレクトを設定する方法」を参照してください。 タイプ: 文字列 デフォルト: なし 制約: 値には |
いいえ |
追加のチェックサムリクエストフォームフィールド
オブジェクトをアップロードするときに、データの整合性を検証するために使用するさまざまなチェックサムを指定できます。Amazon S3 で使用する追加のチェックサムアルゴリズムを 1 つ指定できます。追加のチェックサム値の詳細については、「Amazon Simple Storage Service ユーザーガイド」の「オブジェクトの整合性の確認」を参照してください。
| 名前 | 説明 | 必須 |
|---|---|---|
x-amz-checksum-algorithm
|
オブジェクトのチェックサムを作成するために使用されるアルゴリズムを示します。値を指定する場合は、一致するチェックサムヘッダーを含める必要があります。そうしないと、リクエストは 400 エラーを生成します。 指定できる値には、 |
いいえ |
x-amz-checksum-crc32
|
オブジェクトの base64 エンコードされた 32 ビット CRC32 チェックサムを指定します。 このパラメータは、 |
条件付き |
x-amz-checksum-crc32c
|
オブジェクトの base64 エンコードされた 32 ビット CRC32C チェックサムを指定します。 このパラメータは、 |
条件付き |
x-amz-checksum-sha1
|
オブジェクトの base64 エンコードされた 160 ビット SHA-1 ダイジェストを指定します。 このパラメータは、 |
条件付き |
x-amz-checksum-sha256
|
オブジェクトの base64 エンコードされた 256 ビット SHA-256 ダイジェストを指定します。 このパラメータは、 |
条件付き |
サーバー側の暗号化固有のリクエストフォームフィールド
サーバー側の暗号化は、保存時のデータ暗号化です。Amazon S3 は、AWS データセンターのディスクに書き込まれるときにデータを暗号化し、お客様がデータにアクセスするときに復号します。オブジェクトをアップロードする際には、そのオブジェクトの暗号化に Amazon S3 が使用するサーバー側の暗号化の種類を指定できます。
サーバー側の暗号化には 4 つのタイプがあります。
-
Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE-S3) – 2022 年 5 月以降、すべての Amazon S3 バケットでは、デフォルトで暗号化が設定されています。サーバー側の暗号化のデフォルトのオプションは、SSE-S3 を使用しています。一意のキーで各オブジェクトを暗号化します。追加の保護措置として、SSE-S3 は定期的にローテーションされるルートキーを使ってキーそのものを暗号化します。SSE-S3 は、利用可能な最強のブロック暗号の 1 つである 256 ビットの 高度暗号化規格 (AES-256) を使用して、データを暗号化します。
-
AWS KMS キーを使用したサーバー側の暗号化 (SSE-KMS) – SSE-KMS は、AWS KMS サービスと Amazon S3 の統合によって提供されます。AWS KMS を使用すると、キーをより細かく制御できます。例えば、個別のキーを表示し、制御ポリシーを編集して、AWS CloudTrail のキーに従うことができます。さらに、カスタマーマネージドキーを作成および管理したり、ユーザー、サービス、およびリージョンに固有の AWS マネージドキー を使用したりできます。
-
AWS KMS キーを使用した二層式サーバー側暗号化 (DSSE-KMS) – AWS KMS keys キーを使用した二層式サーバー側暗号化 (DSSE-KMS) は、SSE-KMS と似ていますが、1 つのレイヤーの代わりに 2 つの個別のオブジェクトレベルの暗号化レイヤーを適用します。
-
顧客提供キーによるサーバー側の暗号化 (SSE−C) – SSE-Cでは、お客様が暗号化キーを管理し、Amazon S3 はディスクに書き込む際の暗号化とオブジェクトにアクセスする際の復号を管理します。
注記
汎用バケットに対してお客様が用意したキー (SSE-C) によるサーバー側の暗号化がブロックされている場合、バケットに新しいデータを書き込むときに SSE-C リクエストヘッダーを指定すると、HTTP 403 Access Denied エラーが発生します。詳細については、「汎用バケットの SSE-C のブロックまたはブロック解除」を参照してください。
詳細については、「Amazon Simple Storage Service ユーザーガイド」の「サーバー側の暗号化を使用したデータの保護」を参照してください。
使用するサーバー側の暗号化のタイプに応じて、次のフォームフィールドを指定します。
-
SSE-S3、SSE-KMS、または DSSE-KMS を使用する – これらのタイプのサーバー側の暗号化を使用する場合は、リクエストで次のフォームフィールドを指定します。
名前 説明 必須 x-amz-server-side-encryptionAmazon S3 がオブジェクトを作成するときに使用するサーバー側の暗号化アルゴリズムを指定します。SSE-S3 を使用するには、
AES256を指定します。SSE-KMS を使用するには、aws:kmsを指定します。DSSE-KMS を使用するには、aws:kms:dsseを指定します。タイプ: 文字列
有効な値:
aws:kms、AES256、aws:kms:dsseはい x-amz-server-side-encryption-aws-kms-key-idx-amz-server-side-encryptionヘッダーの有効な値がaws:kmsまたはaws:kms:dsseの場合、このヘッダーはオブジェクトの暗号化に使用された AWS KMS key の ID を指定します。タイプ: 文字列
はい( x-amz-server-side-encryptionの値がaws:kmsまたはaws:kms:dsseの場合)x-amz-server-side-encryption-contextx-amz-server-side-encryptionの有効な値がaws:kmsまたはaws:kms:dsseの場合、このヘッダーはオブジェクトの暗号化コンテキストを指定します。このヘッダーの値は、JSON 形式のキーと値のペアを含む UTF-8 文字列を base64 でエンコードした文字列です。タイプ: 文字列
いいえ x-amz-server-side-encryption-bucket-key-enabledx-amz-server-side-encryptionの有効な値がaws:kmsまたはaws:kms:dsseの場合、このヘッダーは Amazon S3 が SSE-KMS または DSSE-KMS で S3 バケットキーを使用するかどうかを指定します。このヘッダーをtrueに設定すると、Amazon S3 は SSE-KMS または DSSE-KMS によるオブジェクト暗号化に S3 バケットキーを使用します。タイプ: ブール値
いいえ 注記
x-amz-server-side-encryption:aws:kmsまたはx-amz-server-side-encryption:aws:kms:dsseを指定してもx-amz-server-side-encryption-aws-kms-key-idを指定しない場合、Amazon S3 は AWS マネージドキー (aws/S3) を使用してデータを保護します。 -
SSE-C を使用する – 独自の暗号化キーを管理する場合は、リクエストで次のフォームフィールドをすべて指定する必要があります。
注記
SSE-C を使用する場合、Amazon S3 がレスポンスで返す
ETag値はオブジェクトの MD5 ではありません。名前 説明 必須 x-amz-server-side-encryption-customer-algorithmオブジェクトを暗号化するときに使用するアルゴリズムを指定します。
タイプ: 文字列
デフォルト: なし
有効な値:
AES256制約: 有効な
x-amz-server-side-encryption-customer-keyおよびx-amz-server-side-encryption-customer-key-MD5フィールドが伴う必要があります。はい x-amz-server-side-encryption-customer-keyAmazon S3 がデータの暗号化に使用する、お客様が用意した base64 エンコードされた暗号化キーを指定します。この値はオブジェクトの保存に使用され、その後破棄されます。Amazon では暗号化キーを保存しません。キーは、
x-amz-server-side-encryption-customer-algorithmヘッダーで指定されたアルゴリズムでの使用に適している必要があります。タイプ: 文字列
デフォルト: なし
制約: 有効な
x-amz-server-side-encryption-customer-algorithmおよびx-amz-server-side-encryption-customer-key-MD5フィールドが伴う必要があります。はい x-amz-server-side-encryption-customer-key-MD5RFC 1321
に従って、暗号化キーの base64 エンコードされた 128 ビット MD5 ダイジェストを指定します。Amazon S3 では、このヘッダーを使用してメッセージの整合性を調べて、送信された暗号化キーにエラーがないことを確認します。 タイプ: 文字列
デフォルト: なし
制約: 有効な
x-amz-server-side-encryption-customer-algorithmおよびx-amz-server-side-encryption-customer-keyフィールドが伴う必要があります。はい
レスポンス
レスポンスヘッダー
このオペレーションの実装では、すべてのレスポンスに共通するレスポンスヘッダーに加え、以下のレスポンスヘッダーを含めることができます。詳細については、「共通のレスポンスヘッダー」を参照してください。
| 名前 | 説明 |
|---|---|
x-amz-checksum-crc32
|
オブジェクトの base64 エンコードされた 32 ビット CRC32 チェックサム。 タイプ: 文字列 |
x-amz-checksum-crc32c
|
オブジェクトの base64 エンコードされた 32 ビット CRC32C チェックサム。 タイプ: 文字列 |
x-amz-checksum-sha1
|
オブジェクトの base64 エンコードされた 160 ビット SHA-1 ダイジェスト。 タイプ: 文字列 |
x-amz-checksum-sha256
|
オブジェクトの base64 エンコードされた 256 ビット SHA-256 ダイジェスト。 タイプ: 文字列 |
x-amz-expiration
|
バケットのライフサイクル設定の一部としてオブジェクトに タイプ: 文字列 |
success_action_redirect, redirect
|
アップロードが成功したときにクライアントがリダイレクトされる URL。 タイプ: 文字列 祖先: PostResponse |
x-amz-server-side-encryption
|
Amazon S3 へのこのオブジェクトの保存時に使用されたサーバー側の暗号化アルゴリズム ( タイプ: 文字列 |
x-amz-server-side-encryption-aws-kms-key-id
|
タイプ: 文字列 |
x-amz-server-side-encryption-bucket-key-enabled
|
タイプ: ブール値 |
x-amz-server-side-encryption-customer-algorithm
|
SSE-C がリクエストされた場合、レスポンスには、使用された暗号化アルゴリズムを確認するこのヘッダーが含まれます。 タイプ: 文字列 有効な値: |
x-amz-server-side-encryption-customer-key-MD5
|
SSE-C がリクエストされた場合、レスポンスには、お客様が用意した暗号化キーのラウンドトリップメッセージの整合性を検証するためのこのヘッダーが含まれます。 タイプ: 文字列 |
x-amz-version-id |
オブジェクトのバージョン。 タイプ: 文字列 |
レスポンス要素
| 名前 | 説明 |
|---|---|
Bucket
|
オブジェクトが格納されたバケットの名前。 タイプ: 文字列 祖先: PostResponse |
ETag
|
エンティティタグ (ETag) は、 タイプ: 文字列 祖先: PostResponse |
Key
|
オブジェクトキー名。 タイプ: 文字列 祖先: PostResponse |
Location
|
オブジェクトの URI。 タイプ: 文字列 祖先: PostResponse |
特殊なエラー
このオペレーションの実装では、特殊なエラーは返されません。Amazon S3 のエラーとエラーコードのリストの一般的な情報については、「エラーレスポンス」を参照してください。
例
リクエスト例
POST /Neo HTTP/1.1 Content-Length: 4 Host: quotes.s3.amazonaws.com Date: Wed, 01 Mar 2006 12:00:00 GMT Authorization:authorization stringContent-Type: text/plain Expect: the 100-continue HTTP status codeObjectContent
バージョニングが停止されたレスポンスの例
バケットのバージョニングが停止された場合のレスポンスの例を次に示します。
HTTP/1.1 100 Continue HTTP/1.1 200 OK x-amz-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-amz-request-id: 0A49CE4060975EAC x-amz-version-id: default Date: Wed, 12 Oct 2009 17:50:00 GMT ETag: "1b2cf535f27731c974343645a3985328" Content-Length: 0 Connection: close Server: AmazonS3
このレスポンスでは、バージョン ID は null です。
バージョニングが有効になっているレスポンスの例
バケットのバージョニングが有効になっている場合のレスポンスの例を次に示します。
HTTP/1.1 100 Continue HTTP/1.1 200 OK x-amz-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-amz-request-id: 0A49CE4060975EAC x-amz-version-id: 43jfkodU8493jnFJD9fjj3HHNVfdsQUIFDNsidf038jfdsjGFDSIRp Date: Wed, 01 Mar 2006 12:00:00 GMT ETag: "828ef3fdfa96f00ad9f27c383fc9ac7f" Content-Length: 0 Connection: close Server: AmazonS3