

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

# 將資料附加至目錄儲存貯體中的物件
<a name="directory-buckets-objects-append"></a>

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

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

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

**注意**  
 如果達到組件數上限，則會收到 [TooManyParts](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#API_PutObject_Errors) 錯誤。您可以使用 `CopyObject` API 來重設計數。

 如果您想要將多個組件平行上傳至物件，而且在上傳組件時不需要讀取組件，建議您使用 Amazon S3 分段上傳。如需詳細資訊，請參閱[使用分段上傳](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-using-multipart-upload.html)。

只有儲存在 S3 Express One Zone 儲存類別之目錄儲存貯體中的物件，才支援將資料附加至物件。如需 S3 Express One Zone 的詳細資訊，請參閱[開始使用 S3 Express One Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-getting-started.html)。

若要開始將 AWS 資料附加至目錄儲存貯體中的物件，您可以使用 SDKs、 AWS CLI 和 `PutObject` API 。當您提出 `PutObject` 請求時，請將 `x-amz-write-offset-bytes` 標頭設定為您要附加的目的地物件大小。若要使用 `PutObject` API 操作，您必須使用 `CreateSession` API 建立臨時安全憑證，以存取目錄儲存貯體中的物件。如需詳細資訊，請參閱 Amazon S3 API 參考**中的[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)和[https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html)。

每個成功的附加操作都會以一個 `PutObject` 請求來計費。若要進一步了解定價，請參閱[https://aws.amazon.com/s3/pricing/](https://aws.amazon.com/s3/pricing/)。

**注意**  
從 1.12 版開始，適用於 Amazon S3 的掛載點支援將資料附加至儲存在 S3 Express One Zone 中的物件。若要開始使用，您必須設定 `--incremental-upload ` 旗標以選擇加入。如需掛載點的詳細資訊，請參閱[使用掛載點](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mountpoint.html)。

 如果您在上傳附加資料時使用 CRC (循環冗餘檢查) 演算法，您可以使用 `HeadObject` 或 `GetObject` 請求來擷取完整物件 CRC 型檢查總和。如果您在上傳附加資料時使用 SHA-1 或 SHA-256 演算法，您可以擷取附加組件的檢查總和，並使用先前 PutObject 回應傳回的 SHA 檢查總和來驗證其完整性。如需詳細資訊，請參閱[資料保護和加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-data-protection.html.html)。

## 使用 CLI、 AWS SDKs AWS 和 REST API 將資料附加至物件
<a name="directory-bucket-append"></a>

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

### 使用 AWS CLI
<a name="set-append--cli"></a>

下列`put-object`範例命令顯示如何使用 AWS CLI 將資料附加至物件。若要執行此命令，請以您自己的資訊取代*使用者輸入預留位置*。

```
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
```

### 使用 AWS SDKs
<a name="directory-bucket-append-sdks"></a>

------
#### [ SDK for Java ]

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

```
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 API
<a name="directory-bucket-append-api"></a>

 您可以傳送 REST 請求，將資料附加至物件。如需詳細資訊，請參閱[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#API_PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#API_PutObject)。