本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
PutObject (SOAP API)
注意
Amazon S3 的 SOAP API 不適用於新客戶,並且將於 2025 年 8 月 31 日接近生命週期結束 (EOL)。我們建議您使用 REST API 或 AWS SDKs。
PutObject 操作會將物件新增至儲存貯體。物件的資料會附加為 DIME 連接。
為了確保物件不會在網路上損毀,您可以計算物件的 MD5、將物件 PUT 轉換為 Amazon S3,並將傳回的 Etag 與計算的 MD5 值進行比較。
如果儲存貯體中已存在物件,則新物件會覆寫它,因為 Amazon S3 會儲存最後一個寫入請求。不過,Amazon S3 是分散式系統。如果 Amazon S3 幾乎同時收到相同物件的多個寫入請求,所有物件都可能儲存,即使最後只有一個獲勝。Amazon S3 不提供物件鎖定;如果您需要,請務必將其建置到您的應用程式層。
範例
此範例會將一些資料和中繼資料放入「引號」儲存貯體的「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:實體標籤是 物件的 MD5 雜湊,您可以使用 對物件執行條件式擷取GetObjectExtended。ETag 只會反映物件內容的變更,而不是其中繼資料。LastModified:已儲存物件的 Amazon S3 時間戳記。
存取控制
若要將物件放入儲存貯體,您必須擁有儲存貯體的WRITE存取權。