PutObjectInline (SOAP API)
注記
SOAP API for Amazon S3 は新規顧客には利用できず、2025 年 8 月 31 日にサポート終了 (EOL) となります。REST API か AWS SDK を使用することをお勧めします。
PutObjectInline オペレーションはバケットにオブジェクトを追加します。オブジェクトのデータは、SOAP メッセージの本文に含まれています。
バケット内に既にオブジェクトが存在する場合、Amazon S3 は最後の書き込みリクエストを保存しているため、新しいオブジェクトはそれを上書きします。ただし、Amazon S3 は分散システムです。Amazon S3 が同じオブジェクトに対する複数の書き込みリクエストをほぼ同時に受信した場合、最終的に優先されるのは 1 つだけだとしても、すべてのオブジェクトが保存される可能性があります。Amazon S3 は Object Lock 機能を提供していません。必要な場合は、必ずアプリケーションレイヤーに構築してください。
オブジェクトがネットワーク上で破損しないようにするには、オブジェクトの MD5 を計算し、Amazon S3 に PUT して、返された Etag を計算された MD5 値と比較します。
PutObjectInline は、大きなオブジェクトでの使用には適していません。このオペレーションは、1 MB 以下のオブジェクトを操作する場合に限定されています。データパラメータが 1 MB を超えるオブジェクトをエンコードすると、PutObjectInline は InlineDataTooLargeError ステータスコードで失敗します。大きなオブジェクトをアップロードするには、代わりに非インライン PutObject API または REST API の使用を検討してください。
例
この例では、「quotes」バケットの「Nelson」オブジェクトにテキストとメタデータを書き込み、ユーザー (通常は所有者) にオブジェクトへの FULL_CONTROL アクセスを許可し、匿名のユーザーでもオブジェクトを読み取れるようにします。
Sample Request
<PutObjectInline xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>quotes</Bucket> <Key>Nelson</Key> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>family</Name> <Value>Muntz</Value> </Metadata> <Data>aGEtaGE=</Data> <ContentLength>5</ContentLength> <AccessControlList> <Grant> <Grantee xsi:type="CanonicalUser"> <ID>a9a7b886d6fde241bf9b1c61be666e9</ID> <DisplayName>chriscustomer</DisplayName> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> <Grant> <Grantee xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI> </Grantee> <Permission>READ</Permission> </Grant> </AccessControlList> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </PutObjectInline>
Sample Response
<PutObjectInlineResponse xmlns="https://s3.amazonaws.com/doc/2006-03-01"> <PutObjectInlineResponse> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <LastModified>2006-01-01T12:00:00.000Z</lastModified> </PutObjectInlineResponse> </PutObjectInlineResponse>
要素
-
Bucket:オブジェクトを追加するバケット。 -
Key:オブジェクトに割り当てるキー。 -
Metadata:メタデータ要素で名前と値のメタデータのペアを指定できます。これらはオブジェクトと共に保存されます。 -
Data:データの Base64 エンコード形式。 -
ContentLength:データの長さ (バイト単位)。 -
AccessControlList:リソースに対するアクセスコントロールリスト。この要素はオプションです。省略すると、リクエスタにオブジェクトへのFULL_CONTROLアクセスが付与されます。オブジェクトが既に存在する場合、既存のアクセスコントロールポリシーが置き換えられます。
レスポンス
ETag:エンティティタグは、GetObjectExtendedを使用してオブジェクトの条件付きフェッチを実行するために使用できる、オブジェクトの MD5 ハッシュです。ETag は、オブジェクトのコンテンツに加えた変更のみを反映し、メタデータに加えた変更は反映しません。-
LastModified:保存されたオブジェクトの Amazon S3 タイムスタンプ。
アクセスコントロール
オブジェクトをバケットに配置するには、バケットへの WRITE アクセス権が必要です。