將資料附加至目錄儲存貯體中的物件 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將資料附加至目錄儲存貯體中的物件

您可以將資料附加到目錄儲存貯體中 S3 Express One Zone 儲存類別中儲存的現有物件結尾。如果資料在一段時間內持續寫入,或者如果您在寫入物件時需要讀取物件,建議您使用 將資料附加至物件的功能。將資料附加到物件對於使用案例很常見,例如將新的日誌項目新增至日誌檔案,或將新的影片片段新增至影片檔案,因為它們會經過轉碼後進行串流。透過將資料附加至物件,您可以簡化先前在本機儲存中合併資料的應用程式,然後再將最終物件複製到 Amazon S3。

您可以附加至物件的資料沒有大小下限需求。不過,您可以在單一請求中附加至物件的資料大小上限為 5GB。這與使用任何 Amazon S3 API 上傳資料時的最大請求大小相同。

每個成功的附加操作都會建立物件的一部分,每個物件最多可以有 10,000 個部分。這表示您最多可以將資料附加至物件 10,000 次。如果使用 S3 分段上傳建立物件,則每個上傳的部分都會計入總計最多 10,000 個部分。例如,您最多可以將 9,000 次附加至由包含 1,000 個部分的分段上傳所建立的物件。

注意

如果您達到 部分的限制,您將會收到 TooManyParts 錯誤。您可以使用 API CopyObject 來重設計數。

如果您想要平行將零件上傳至物件,而且在上傳零件時不需要讀取零件,建議您使用 Amazon S3 分段上傳。如需詳細資訊,請參閱使用分段上傳

只有存放在 S3 Express One Zone 儲存類別的目錄儲存貯體中的物件,才支援將資料附加到物件。如需 S3 Express One Zone 的詳細資訊,請參閱 S3 Express One Zone 入門

若要開始將資料附加至目錄儲存貯體中的物件,您可以使用 AWS SDKs、 AWS CLI 和 PutObject API 。當您提出PutObject請求時,您可以將x-amz-write-offset-bytes標頭設定為您要附加的物件大小。若要使用 PutObject API 操作,您必須使用 CreateSession API 來建立暫時安全憑證,以存取目錄儲存貯體中的物件。如需詳細資訊,CreateSession請參閱 Amazon S3 API 參考PutObject中的 和 。

每個成功的附加操作都會以PutObject請求計費。若要進一步了解定價,請參閱 Amazon S3 pricing

從 1.12 版開始,Amazon S3 的掛載點支援將資料附加至存放在 S3 Express One Zone 中的物件。若要開始使用,您必須設定 以選擇加入--incremental-upload 。如需掛載點的詳細資訊,請參閱使用掛載點

如果您在上傳附加資料時使用 CRC (循環冗餘檢查) 演算法,您可以使用 HeadObjectGetObject請求來擷取完整的物件 CRC 型檢查總和。如果您在上傳附加資料時使用 SHA-1 或 SHA-256 演算法,則可以擷取附加部分的檢查總和,並使用先前 PutObject 回應上傳回的 SHA 檢查總和來驗證其完整性。如需詳細資訊,請參閱資料保護和加密

使用 AWS CLI、 AWS SDKs 和 REST 將資料附加到您的物件 API

您可以使用 AWS Command Line Interface (AWS CLI)、 AWS SDKs 和 REST 將資料附加至物件API。

下列put-object範例命令示範如何使用 AWS CLI 將資料附加至物件。若要執行此命令,請取代 user input placeholders 使用您自己的資訊

aws s3api put-object --bucket amzn-s3-demo-bucket--azid--x-s3 --key sampleinput/file001.bin --body bucket-seed/file001.bin --write-offset-bytes size-of-sampleinput/file001.bin
SDK for Java

您可以使用 AWS SDK for Java 將資料附加至物件。

var putObjectRequestBuilder = PutObjectRequest.builder() .key(key) .bucket(bucketName) .writeOffsetBytes(9); var response = s3Client.putObject(putObjectRequestBuilder.build());
SDK for Python
s3.put_object(Bucket='amzn-s3-demo-bucket--use2-az2--x-s3', Key='2024-11-05-sdk-test', Body=b'123456789', WriteOffsetBytes=9)

您可以傳送 REST 請求,將資料附加至物件。如需詳細資訊,請參閱PutObject