PutObject (SOAP API)
注記
SOAP API for Amazon S3 は新規顧客には利用できず、2025 年 8 月 31 日にサポート終了 (EOL) となります。REST API か AWS SDK を使用することをお勧めします。
PutObject オペレーションはバケットにオブジェクトを追加します。オブジェクトのデータは DIME 添付ファイルとしてアタッチされます。
オブジェクトがネットワーク上で破損しないようにするには、オブジェクトの MD5 を計算し、Amazon S3 に PUT して、返された Etag を計算された MD5 値と比較します。
バケット内に既にオブジェクトが存在する場合、Amazon S3 は最後の書き込みリクエストを保存しているため、新しいオブジェクトはそれを上書きします。ただし、Amazon S3 は分散システムです。Amazon S3 が同じオブジェクトに対する複数の書き込みリクエストをほぼ同時に受信した場合、最終的に優先されるのは 1 つだけだとしても、すべてのオブジェクトが保存される可能性があります。Amazon S3 は Object Lock 機能を提供していません。必要な場合は、必ずアプリケーションレイヤーに構築してください。
例
この例では、「quotes」バケットの「Nelson」オブジェクトにデータとメタデータを配置し、ユーザー (通常は所有者) にオブジェクトへの FULL_CONTROL アクセスを許可し、匿名のユーザーでもオブジェクトを読み取れるようにします。このサンプルでは、実際の添付ファイルは表示されません。
Sample Request
<PutObject 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> <ContentLength>5</ContentLength> <AccessControlList> <Grant> <Grantee xsi:type="CanonicalUser"> <ID>a9a7b886d6241bf9b1c61be666e9</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>2007-05-11T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </PutObject>
Sample Response
<PutObjectResponse xmlns="https://s3.amazonaws.com/doc/2006-03-01"> <PutObjectResponse> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <LastModified>2006-03-01T12:00:00.183Z</LastModified> </PutObjectResponse> </PutObjectResponse>
要素
Bucket:オブジェクトを追加するバケット。Key:オブジェクトに割り当てるキー。Metadata:メタデータ要素で名前と値のメタデータのペアを指定できます。これらはオブジェクトと共に保存されます。ContentLength:データの長さ (バイト単位)。AccessControlList:リソースに対するアクセスコントロールリスト。この要素はオプションです。省略すると、リクエスタにオブジェクトへのFULL_CONTROLアクセスが付与されます。オブジェクトが既に存在する場合、既存のアクセスコントロールポリシーが置き換えられます。
レスポンス
ETag:エンティティタグは、GetObjectExtendedを使用してオブジェクトの条件付きフェッチを実行するために使用できる、オブジェクトの MD5 ハッシュです。ETag は、オブジェクトのコンテンツに加えた変更のみを反映し、メタデータに加えた変更は反映しません。LastModified:保存されたオブジェクトの Amazon S3 タイムスタンプ。
アクセスコントロール
オブジェクトをバケットに配置するには、バケットへの WRITE アクセス権が必要です。