

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

# 建立 S3 批次操作任務
<a name="batch-ops-create-job"></a>

您可以使用 Amazon S3 Batch Operations，在特定 Amazon S3 物件清單上執行大規模的批次操作。本節說明建立 S3 批次操作任務所需的資訊，以及 `CreateJob` 要求的結果，它還提供使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI) 和 建立批次操作任務的說明 適用於 Java 的 AWS SDK。

當您建立 S3 批次操作任務時，您可以為所有任務請求完成報告，或僅請求失敗的任務。只要順利叫用至少一個任務，S3 Batch Operations 就會產生已完成、失敗或已取消任務的報告。如需詳細資訊，請參閱[範例：S3 批次操作完成報告](batch-ops-examples-reports.md)。

下列影片提供如何使用 Amazon S3 主控台建立 Batch Operations 任務的簡短示範。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/qpwHUrwAiUI//0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/qpwHUrwAiUI/)


**Topics**
+ [批次操作任務請求元素](#batch-ops-create-job-request-elements)
+ [指定資訊清單](#specify-batchjob-manifest)
+ [自動產生物件清單，並將其儲存為資訊清單檔案](#automatically-generate-manifest-file)
+ [建立清單檔案](#create-manifest-file)
+ [使用現有的資訊清單](#specify-existing-manifest-file)
+ [建立任務](#to-create-batch-ops-job)
+ [任務回應](#batch-ops-create-job-response-elements)

## 批次操作任務請求元素
<a name="batch-ops-create-job-request-elements"></a>

若要建立 S3 批次操作任務，您必須提供下列資訊：

**操作**  
請指定希望 S3 批次操作針對資訊清單中物件執行的操作。每個操作類型都接受該操作特有的參數。您可以透過 Batch Operations 大量執行操作，結果與您在每一個物件上逐一執行操作相同。

**清單檔案**  
*資訊清單*是 Amazon S3 物件清單，其中包含您希望 Amazon S3 採取行動的物件索引鍵。您可以使用下列方法指定 Batch Operations 任務的清單檔案：  
+ 指示 Batch Operations 根據您指定的中繼資料產生物件清單。您可以將此清單儲存為資訊清單，並在建立您的作業時使用該檔案。此選項適用於您使用 Amazon S3 主控台、、 AWS CLI AWS SDKs 或 Amazon S3 REST API 建立的任何任務類型。
+ 根據現有的複寫組態自動產生物件清單。您可以將此清單儲存為資訊清單，並再次用於未來的作業。
+ 手動建立新的清單檔案。
+ 使用現有的清單檔案。
+ 無論您如何指定要處理的物件，資訊清單本身都必須儲存在一般用途儲存貯體中。Batch Operations 無法從目錄儲存貯體匯入現有的資訊清單，也無法將產生的物件清單儲存到目錄儲存貯體。不過，清單檔案內描述的物件可以儲存在目錄儲存貯體中。如需詳細資訊，請參閱[目錄儲存貯體](https://docs.aws.amazon.com//AmazonS3/latest/userguide/directory-buckets-overview.html)。
+ 如果您清單檔案中的物件位於已進行版本控制的儲存貯體中，指定物件的版本 ID 將會指示 Batch Operations 對特定版本執行操作。如果未指定版本 ID，則 Batch Operations 會對物件的最新版本執行操作。如果您的清單檔案包含版本 ID 欄位，您必須為資訊清單中的所有物件提供一個版本 ID。
如需詳細資訊，請參閱[指定資訊清單](#specify-batchjob-manifest)。

**優先順序**  
請使用任務優先順序，指出此任務與您帳戶中執行之其他任務的相對優先順序。數字越大表示優先順序越高。  
任務優先順序僅在相對於為同一帳戶和區域中的其他任務所設定的優先順序有意義。您可以選擇任何適合您的編號系統。例如，您可能想要為所有**還原** (`RestoreObject`) 作業派優先順序 1，為所有**複製** (`CopyObject`) 作業指派優先順序 2，以及為所有**取代存取控制清單 (ACL)** (`PutObjectAcl`) 作業指派優先順序 3。  
S3 Batch Operations 會根據優先順序編號來排序任務的優先順序，但不保證嚴格排序。因此，請不要使用任務優先順序來確保其中任何一個任務會在其他任務之前啟動或完成。若您必須確保嚴格排序，請等待一個任務完成之後，再啟動下一個任務。

**RoleArn**  
指定要執行任務的 AWS Identity and Access Management (IAM) 角色。您使用的 IAM 角色必須具有足夠的許可，才能執行任務中指定的操作。例如，若要執行 `CopyObject` 任務，IAM 角色必須具備來源儲存貯體的 `s3:GetObject` 許可，以及目的地儲存貯體的 `s3:PutObject` 許可。角色也需要讀取資訊清單及寫入完成報告的權限。  
IAM 角色可以是現有角色。或者，如果您使用 Amazon S3 主控台來建立任務，它可以是 Amazon S3 自動為您建立的 IAM 角色。如需詳細資訊，請參閱[授予批次操作的許可](batch-ops-iam-role-policies.md)。  
如需 IAM 角色的詳細資訊，請參閱《*IAM 使用者指南》*中的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。如需 Amazon S3 許可的詳細資訊，請參閱 [Amazon S3 的政策動作](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions)。  
對目錄儲存貯體執行動作的 Batch Operations 任務須具備特定許可。如需詳細資訊，請參閱[適用於 S3 Express One Zone 的AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-security-iam.html)。

**報告**  
指定是否希望 S3 批次操作產生完整報告。若您請求一份完成報告，您也必須在此元素中提供報告的參數。下列為必要資訊：  
+ 您希望在其中存放報告的儲存貯體
**注意**  
報告必須儲存在一般用途儲存貯體中。Batch Operations 無法將報告儲存至目錄儲存貯體。如需詳細資訊，請參閱[目錄儲存貯體](https://docs.aws.amazon.com//AmazonS3/latest/userguide/directory-buckets-overview.html)。
+ 報告的格式
+ 您希望報告包含所有任務的詳細資訊，還是僅限失敗的任務
+ 選擇性的字首字串
如果提供 `CreateJob.Report.ExpectedBucketOwner` 欄位，則需要與完成報告儲存貯體擁有者相符。如果不相符，則該作業就會失敗。  
完成報告一律會使用 Amazon S3 受管金鑰的伺服器端加密 (SSE-S3) 進行加密。

**標籤 （選用）**  
您可以透過新增*標籤*，標示和控制對 S3 批次操作任務的存取權。您可以使用標籤來識別負責 Batch Operations 任務的人員，或控制使用者與 Batch Operations 任務互動的方式。任務標籤的存在可以授與或限制使用者的以下能力：取消任務、啟動處於確認狀態的任務或變更任務的優先順序層級。例如，假設建立的任務具有標籤 `"Department=Finance"`，您就可以授予使用者調用 `CreateJob` 操作的許可。  
您可以建立已連接標籤的任務，也可以在建立任務後將標籤新增至任務。  
如需詳細資訊，請參閱[使用標籤控制存取和標記任務](batch-ops-job-tags.md)。

**描述 (選用)**  
若要追蹤和監控任務，您也可以提供最多 256 個字元的說明。每當 Amazon S3 在 Amazon S3 主控台上傳回任務的相關資訊或顯示任務的詳細資訊時，都會包含此說明。您可以輕鬆地根據指派的描述來排序和篩選任務。描述不需要是唯一的，因此您可以使用描述作為類別 (例如「每週複製日誌任務」) 來協助您追蹤相似任務的群組。

## 指定資訊清單
<a name="specify-batchjob-manifest"></a>

*資訊清單*是 Amazon S3 物件清單，其中包含您希望 Amazon S3 採取行動的物件索引鍵。您可以使用下列方法指定 Batch Operations 任務的清單檔案：
+ 指示 Batch Operations 根據您指定的中繼資料產生物件清單。您可以將此清單儲存為資訊清單，並在建立作業時使用該清單。此選項適用於您使用 Amazon S3 主控台、、 AWS CLI AWS SDKs 或 Amazon S3 REST API 建立的任何任務類型。
+ 根據現有的複寫組態自動產生物件清單。您可以將此清單另存為資訊清單，等未來作業時再派上用場。
+ 手動建立新的清單檔案。
+ 使用現有的清單檔案。

**注意**  
Amazon S3 Batch Operations 不支援跨區域產生物件清單。
無論您如何指定要處理的物件，資訊清單本身都必須儲存在一般用途儲存貯體中。Batch Operations 無法從目錄儲存貯體匯入現有的資訊清單，也無法將產生的物件清單儲存到目錄儲存貯體。不過，清單檔案內描述的物件可以儲存在目錄儲存貯體中。如需詳細資訊，請參閱[目錄儲存貯體](https://docs.aws.amazon.com//AmazonS3/latest/userguide/directory-buckets-overview.html)。

## 自動產生物件清單，並將其儲存為資訊清單檔案
<a name="automatically-generate-manifest-file"></a>

您可以指示 Amazon S3 根據您指定的中繼資料來自動產生物件清單。您可以將此清單儲存為資訊清單，並在建立作業時使用該清單。此選項適用於您使用 Amazon S3 主控台、、 AWS CLI AWS SDKs 或 Amazon S3 REST API 建立的任何任務類型。

若要自動產生物件清單，並另存為資訊清單檔案，您可以在建立作業請求中指定下列元素：
+ 包含來源物件的儲存貯體相關資訊，包括儲存貯體擁有者和 Amazon Resource Name (ARN)。
+ 資訊清單輸出的相關資訊，包括建立資訊清單的旗標、輸出儲存貯體擁有者、ARN、字首、檔案格式及加密類型。
+ 依物件建立日期、金鑰名稱、大小、加密類型、KMS 金鑰 ARN、儲存貯體金鑰和儲存類別篩選物件的選用條件。在複寫作業中，您也可以使用標籤篩選物件。

### 物件篩選條件
<a name="manifest-generator-filter-criteria"></a>

若要篩選要包含在自動產生的物件清單中的物件清單，您可以指定下列篩選條件。如需詳細資訊，請參閱 *Amazon S3 API 參考*中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestGeneratorFilter.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestGeneratorFilter.html)。

**CreatedAfter**  
如有提供，則產生的清單檔案只會包含在此時間之後建立的來源儲存貯體物件。

**CreatedBefore**  
如有提供，則產生的清單檔案只會包含在此時間之前建立的來源儲存貯體物件。

**EligibleForReplication**  
如有提供，則產生的清單檔案只會包含根據來源儲存貯體上的複寫組態，符合複寫資格的物件。

**KeyNameConstraint**  
如有提供，則產生的清單檔案只會包含物件索引鍵符合針對 **MatchAnySubstring**、**MatchAnyPrefix** 和 **MatchAnySuffix** 所指定字串限制的來源儲存貯體物件。  
**MatchanySubString**：如有提供，則產生的清單檔案會在指定的字串出現在物件索引鍵字串內的任何位置時包含物件。  
**MatchAnyPrefix**：如有提供，則產生的清單檔案會在指定的字串出現在物件索引鍵字串開頭時包含物件。  
**MatchAnySuffix**：如有提供，則產生的清單檔案會在指定的字串出現在物件索引鍵字串結尾時包含物件。

**MatchAnyObjectEncryption**  
 若有提供，則儲存為資訊清單檔案的產生物件清單，只會包含具有指定伺服器端加密類型的來源儲存貯體物件 (SSE-S3、SSE-KMS、DSSE-KMS、SSE-C 或 NOT-SSE)。如果選取 SSE-KMS 或 DSSE-KMS，您可以選擇性地指定特定的 KMS 金鑰 ARN 來進一步篩選結果。如果選取 SSE-KMS，您也可以選擇依儲存貯體金鑰啟用狀態來進一步篩選結果。  
若要在使用`KmsKeyArn`篩選條件時改善資訊清單產生效能，請使用篩選條件搭配其他物件中繼資料篩選條件，例如 `MatchAnyPrefix`、 `CreatedAfter`或 `MatchAnyStorageClass`。

**MatchAnyStorageClass**  
如有提供，則產生的清單檔案只會包含以指定的儲存類別儲存的來源儲存貯體物件。

**ObjectReplicationStatuses**  
如有提供，則產生的清單檔案只會包含具有其中一種指定複寫狀態的來源儲存貯體物件。

**ObjectSizeGreaterThanBytes**  
如有提供，則產生的清單檔案只會包含檔案大小大於所指定位元組數目的來源儲存貯體物件。

**ObjectSizeLessThanBytes**  
如有提供，則產生的清單檔案只會包含檔案大小小於所指定位元組數目的來源儲存貯體物件。

**注意**  
您無法複製大部分已自動產生另存為資訊清單之物件清單的作業。除非批次複寫任務使用 `KeyNameConstraint`、`MatchAnyStorageClass`、`ObjectSizeGreaterThanBytes` 或 `ObjectSizeLessThanBytes` 清單檔案篩選條件，否則可以複製這些任務。

指定清單檔案條件的語法會根據您用來建立任務的方法而有所不同。如需範例，請參閱 [建立任務](#to-create-batch-ops-job)。

## 建立清單檔案
<a name="create-manifest-file"></a>

若要手動建立清單檔案，您可指定清單檔案物件索引鍵、ETag (實體標籤) 和選用的版本 ID (使用 CSV 格式清單)。資訊清單的內容必須為 URL 編碼。

根據預設，Amazon S3 會自動使用採用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密，來加密上傳至 S3 儲存貯體的清單檔案。不支援使用以客戶提供之金鑰 (SSE-C) 進行伺服器端加密的資訊清單。只有在您使用 CSV 格式的庫存報告時，才支援使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 的資訊清單。 AWS KMS 不支援搭配 使用手動建立的資訊清單。

您的資訊清單必須包含儲存貯體名稱、物件金鑰，也可選擇納入各物件的物件版本。S3 批次作業不會使用資訊清單中的任何其他欄位。

**注意**  
如果您清單檔案中的物件位於已進行版本控制的儲存貯體中，指定物件的版本 ID 將會指示 Batch Operations 對特定版本執行操作。如果未指定版本 ID，則 Batch Operations 會對物件的最新版本執行操作。如果您的清單檔案包含版本 ID 欄位，您必須為資訊清單中的所有物件提供一個版本 ID。

以下為不帶版本 ID 的 CSV 格式資訊清單範例。

```
amzn-s3-demo-bucket1,objectkey1
amzn-s3-demo-bucket1,objectkey2
amzn-s3-demo-bucket1,objectkey3
amzn-s3-demo-bucket1,photos/jpgs/objectkey4
amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5
amzn-s3-demo-bucket1,object%20key%20with%20spaces
```

以下是包含版本 ID 的 CSV 格式清單檔案範例。

```
amzn-s3-demo-bucket1,objectkey1,PZ9ibn9D5lP6p298B7S9_ceqx1n5EJ0p
amzn-s3-demo-bucket1,objectkey2,YY_ouuAJByNW1LRBfFMfxMge7XQWxMBF
amzn-s3-demo-bucket1,objectkey3,jbo9_jhdPEyB4RrmOxWS0kU0EoNrU_oI
amzn-s3-demo-bucket1,photos/jpgs/objectkey4,6EqlikJJxLTsHsnbZbSRffn24_eh5Ny4
amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5,imHf3FAiRsvBW_EHB8GOu.NHunHO1gVs
amzn-s3-demo-bucket1,object%20key%20with%20spaces,9HkPvDaZY5MVbMhn6TMn1YTb5ArQAo3w
```

## 使用現有的資訊清單
<a name="specify-existing-manifest-file"></a>

您可以藉由使用下列兩種格式之一，指定現有的資訊清單來建立 Batch Operations 作業：
+ **Amazon S3 庫存清單報告**：必須是 CSV 格式的 Amazon S3 庫存清單報告。您必須指定與庫存報告關聯的 `manifest.json` 檔案。如需庫存報告的詳細資訊，請參閱 [使用 S3 庫存清單編目和分析資料](storage-inventory.md)。如果庫存報告包含版本 ID，則 S3 批次作業會對特定物件版本執行操作。
**注意**  
S3 Batch Operations 支援使用 SSE-KMS 加密的 CSV *庫存報告*。
如果您提交使用 SSE-KMS 加密的庫存報告清單檔案，您的 IAM 政策必須包含 `manifest.json` 物件及所有相關聯 CSV 資料檔案的許可 `"kms:GenerateDataKey"` 和 `"kms:Decrypt"`。
+ **CSV 檔案**：檔案中的每一列都必須包含儲存貯體名稱、物件索引鍵及選用的物件版本。物件金鑰必須使用 URL 編碼，如下列範例所示。資訊清單必須包含所有物件的版本 ID，或省略所有物件的版本 ID。如需 CSV 清單檔案格式的詳細資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestSpec.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestSpec.html)。
**注意**  
S3 Batch Operations 不支援使用 SSE-KMS 加密的 CSV *清單檔案*。

**重要**  
如果您使用手動建立的清單檔案和版本控制的儲存貯體時，我們建議您指定物件的版本 ID。建立任務時，S3 批次作業會在執行任務之前剖析整個資訊清單。但是，它不會為儲存貯體的狀態拍攝「快照」。  
由於清單檔案可能包含數十億個物件，因此任務可能需要很長的時間來執行，這樣可能會影響任務採取行動的物件版本。假設您在任務執行時，以新版本覆寫物件，而您未指定該物件的版本 ID。在此情況下，Amazon S3 會對物件的最新版本執行操作，而非您建立任務時已存在的版本。避免此行為最簡單的方式，便是為資訊清單中列出的物件指定版本 ID。

## 建立任務
<a name="to-create-batch-ops-job"></a>

 您可以使用 Amazon S3 主控台、 AWS CLI、 AWS SDKs 或 Amazon S3 REST API 來建立 Amazon S3 批次操作任務。 Amazon S3 

如需建立任務請求的詳細資訊，請參閱 [批次操作任務請求元素](#batch-ops-create-job-request-elements)。

**先決條件**  
建立 Batch Operations 任務之前，請先確認您已設定相關許可。如需詳細資訊，請參閱[授予批次操作的許可](batch-ops-iam-role-policies.md)。

### 使用 S3 主控台
<a name="batch-ops-create-job-console"></a>

**使用 S3 主控台建立 Batch Operations 作業**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在 Amazon S3 主控台的左側導覽窗格上，選擇 **Batch Operations**。

1. 選擇**建立任務**。

1. 在**選擇區域和範圍**下，選擇並檢視您要建立任務 AWS 的區域。
**注意**  
對於複製操作，您必須在與目的地儲存貯體相同的區域中建立作業。對於所有其他操作，您必須在與資訊清單中的物件相同的區域中建立作業。

1. 針對**範圍**，指定 Batch Operations 作業將據以採取行動的物件清單。

   在**物件清單**下，您可以選擇使用物件清單產生資訊清單、使用複寫組態產生資訊清單，或使用現有的資訊清單。
   + 如果您選擇**產生物件清單**，就會根據您指定的來源位置和中繼資料自動產生物件清單。您可以將此清單另存為資訊清單，等未來作業時再派上用場。
**注意**  
若要產生物件清單，您必須擁有 `s3:PutInventoryConfiguration`許可。來源儲存貯體必須是一般用途儲存貯體。
   + 如果選擇**使用現有的資訊清單**，您可以從現有的資訊清單匯入物件清單。資訊清單是 S3 庫存清單報告或 CV 檔案，其中列出您希望 Batch Operations 處理的特定物件。
   + 如果選擇**使用複寫組態**，您可以根據現有的複寫組態自動產生物件清單。您可以將此清單另存為資訊清單，等未來作業時再派上用場。

      在此範例中，選擇**產生物件清單**。

1. 針對**來源帳戶**，選擇擁有來源物件的帳戶。

1. 在**來源**下，輸入來源的路徑，例如 `s3://`*amzn-s3-demo-bucket*。

1. 在**物件篩選條件**下，您可以使用篩選條件，並依物件索引鍵的任何部分進行篩選，或依物件索引鍵的結尾進行篩選。**物件索引鍵篩選條件**可協助將要在資訊清單中使用的物件清單精簡化。針對**物件中繼資料篩選條件**，選擇篩選條件以進一步定義要包含在資訊清單中的物件範圍。

1. 在**操作**下，選擇要對資訊清單中所有物件執行的操作類型。如果您的資訊清單參考存放在目錄儲存貯體中的物件，請僅使用複製或叫用 AWS Lambda 函數操作。不支援所有其他操作。

1. 選取操作類型後，選擇**下一步**。

1. 填寫**設定其他選項**的資訊。

   針對**許可**，指定您希望任務使用的 AWS Identity and Access Management (IAM) 角色。這可以是現有角色，或 Amazon S3 自動為您建立的角色。如需詳細資訊，請參閱[授予批次操作的許可](batch-ops-iam-role-policies.md)。如果您設定任務使用 S3 產生的物件清單搭配篩選條件或基於複寫組態的物件清單，Amazon S3 可以為您建立角色。

1. 當您完成設定其他選項時，請選擇**下一步**。

1. 在 **Review (檢閱)** 中，確認您的設定。如需變更，請選擇 **Previous** (上一步)。否則，您可以選擇**提交任務**。

### 使用 AWS CLI
<a name="batch-ops-example-cli-job-create"></a>

若要使用 建立批次操作任務 AWS CLI，請根據您要指定現有資訊清單或自動產生資訊清單，選擇下列其中一個範例。

------
#### [ Specify manifest ]

下列範例示範如何使用 AWS CLI 來建立 S3 批次操作`S3PutObjectTagging`任務，以對現有資訊清單檔案中列出的物件採取行動。

**透過指定資訊清單來建立 Batch Operations `S3PutObjectTagging` 作業**

1. 使用下列命令來建立 AWS Identity and Access Management (IAM) 角色，然後建立 IAM 政策來指派相關許可。下列角色和政策會授予 Amazon S3 許可來新增物件標籤，您在後續步驟中建立任務時將會需要這些標籤。

   1. 使用下列範例命令來建立要供 Batch Operations 使用的 IAM 角色。若要使用此範例命令，請將 `S3BatchJobRole` 取代為您要為角色指定的名稱。

      ```
      aws iam create-role \
       --role-name S3BatchJobRole \
       --assume-role-policy-document '{
         "Version": "2012-10-17"		 	 	 ,
         "Statement":[
            {
               "Effect":"Allow",
               "Principal":{
                  "Service":"batchoperations.s3.amazonaws.com"
               },
               "Action":"sts:AssumeRole"
            }
         ]
      }'
      ```

      記錄角色的 Amazon Resource Name (ARN)。在建立任務時，您將需要 ARN。

   1. 使用下列範例命令來建立具有必要許可的 IAM 政策，並將其連接到上一個步驟中建立的 IAM 角色。如需有關必要許可的詳細資訊，請參閱 [授予批次操作的許可](batch-ops-iam-role-policies.md)。
**注意**  
對目錄儲存貯體執行動作的 Batch Operations 任務須具備特定許可。如需詳細資訊，請參閱[適用於 S3 Express One Zone 的AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-security-iam.html)。

      若要使用此範例命令，請取代 `user input placeholders`，如下所示：
      + 將 `S3BatchJobRole` 取代為您的 IAM 角色名稱。確定此名稱與您之前使用的名稱相符。
      + 將 `PutObjectTaggingBatchJobPolicy` 取代為您要為 IAM 政策指定的名稱。
      + 將 `amzn-s3-demo-destination-bucket` 取代為包含您要套用標籤之物件的儲存貯體名稱。
      + 將 *`amzn-s3-demo-manifest-bucket`* 取代為包含資訊清單的儲存貯體名稱。
      + 將 *`amzn-s3-demo-completion-report-bucket`* 取代為要接收完成報告的儲存貯體名稱。

      ```
      aws iam put-role-policy \
        --role-name S3BatchJobRole \
        --policy-name PutObjectTaggingBatchJobPolicy \
        --policy-document '{
        "Version": "2012-10-17"		 	 	 ,		 	 	 TCX5-2025-waiver;,
        "Statement":[
          {
            "Effect":"Allow",
            "Action":[
              "s3:PutObjectTagging",
              "s3:PutObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "s3:GetObject",
              "s3:GetObjectVersion",
              "s3:GetBucketLocation"
            ],
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-manifest-bucket",
              "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*"
            ]
          },
          {
            "Effect":"Allow",
            "Action":[
              "s3:PutObject",
              "s3:GetBucketLocation"
            ],
            "Resource":[
              "arn:aws:s3:::amzn-s3-demo-completion-report-bucket",
              "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*"
            ]
          }
        ]
      }'
      ```

1. 使用下列範例命令來建立 `S3PutObjectTagging` 任務。

   `manifest.csv` 檔案提供儲存貯體和物件金鑰值的清單。該任務會將指定的標籤套用至清單檔案中識別的物件。`ETag` 是 `manifest.csv` 物件的 ETag (您可以從 Amazon S3 主控台取得該物件)。此請求會指定 `no-confirmation-required` 參數，因此您不需使用 `update-job-status` 命令進行確認就可以執行任務。如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [https://docs.aws.amazon.com/cli/latest/reference/s3control/create-job.html](https://docs.aws.amazon.com/cli/latest/reference/s3control/create-job.html)。

   若要使用此範例命令，請以您自己的資訊取代 `user input placeholders`。將 *`IAM-role`* 取代為您先前建立之 IAM 角色的 ARN。

   ```
   aws s3control create-job \
       --region us-west-2 \
       --account-id acct-id \
       --operation '{"S3PutObjectTagging": { "TagSet": [{"Key":"keyOne", "Value":"ValueOne"}] }}' \
       --manifest '{"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},"Location":{"ObjectArn":"arn:aws:s3:::amzn-s3-demo-manifest-bucket/manifest.csv","ETag":"60e460c9d1046e73f7dde5043ac3ae85"}}' \
       --report '{"Bucket":"arn:aws:s3:::amzn-s3-demo-completion-report-bucket","Prefix":"final-reports", "Format":"Report_CSV_20180820","Enabled":true,"ReportScope":"AllTasks"}' \
       --priority 42 \
       --role-arn IAM-role \
       --client-request-token $(uuidgen) \
       --description "job description" \
       --no-confirmation-required
   ```

   為了回應，Amazon S3 會傳回任務 ID (例如 `00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c`)。您將需要任務 ID 來識別、監控和修改任務。

------
#### [ Generate manifest ]

下列範例顯示如何建立 S3 Batch Operations `S3DeleteObjectTagging` 任務，讓它根據您的物件篩選條件自動產生清單檔案。此條件包括建立日期、索引鍵名稱、大小、儲存類別和標籤。

**透過產生資訊清單來建立 Batch Operations `S3DeleteObjectTagging` 作業**

1. 使用下列命令來建立 AWS Identity and Access Management (IAM) 角色，然後建立 IAM 政策來指派許可。下列角色和政策會授予 Amazon S3 許可來刪除物件標籤，您在後續步驟中建立任務時將會需要這些標籤。

   1. 

      使用下列範例命令來建立要供 Batch Operations 使用的 IAM 角色。若要使用此範例命令，請將 `S3BatchJobRole` 取代為您要為角色指定的名稱。

      ```
      aws iam create-role \
       --role-name S3BatchJobRole \
       --assume-role-policy-document '{
         "Version": "2012-10-17"		 	 	 ,		 	 	 TCX5-2025-waiver;,
         "Statement":[
            {
               "Effect":"Allow",
               "Principal":{
                  "Service":"batchoperations.s3.amazonaws.com"
               },
               "Action":"sts:AssumeRole"
            }
         ]
      }'
      ```

      記錄角色的 Amazon Resource Name (ARN)。在建立任務時，您將需要 ARN。

   1. 使用下列範例命令來建立具有必要許可的 IAM 政策，並將其連接到上一個步驟中建立的 IAM 角色。如需有關必要許可的詳細資訊，請參閱 [授予批次操作的許可](batch-ops-iam-role-policies.md)。
**注意**  
對目錄儲存貯體執行動作的 Batch Operations 任務須具備特定許可。如需詳細資訊，請參閱[適用於 S3 Express One Zone 的AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-security-iam.html)。

      若要使用此範例命令，請取代 `user input placeholders`，如下所示：
      + 將 `S3BatchJobRole` 取代為您的 IAM 角色名稱。確定此名稱與您之前使用的名稱相符。
      + 將 `DeleteObjectTaggingBatchJobPolicy` 取代為您要為 IAM 政策指定的名稱。
      + 將 `amzn-s3-demo-destination-bucket` 取代為包含您要套用標籤之物件的儲存貯體名稱。
      + 將 `amzn-s3-demo-manifest-bucket` 取代為要在其中儲存清單檔案的儲存貯體名稱。
      + 將 `amzn-s3-demo-completion-report-bucket` 取代為要接收完成報告的儲存貯體名稱。

      ```
      aws iam put-role-policy \
        --role-name S3BatchJobRole \
        --policy-name DeleteObjectTaggingBatchJobPolicy \
        --policy-document '{
        "Version": "2012-10-17"		 	 	 ,		 	 	 TCX5-2025-waiver;,
        "Statement":[
          {
            "Effect":"Allow",
            "Action":[
              "s3:DeleteObjectTagging",
              "s3:DeleteObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
          },
          {
            "Effect":"Allow",
            "Action":[
              "s3:PutInventoryConfiguration"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket"
          },
          {
            "Effect": "Allow",
            "Action": [
              "s3:GetObject",
              "s3:GetObjectVersion",
              "s3:ListBucket"
            ],
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-manifest-bucket",
              "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*"
            ]
          },
          {
            "Effect":"Allow",
            "Action":[
              "s3:PutObject",
              "s3:ListBucket"
            ],
            "Resource":[
              "arn:aws:s3:::amzn-s3-demo-completion-report-bucket",
              "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*",
              "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*"
            ]
          }
        ]
      }'
      ```

      

1. 使用下列範例命令來建立 `S3DeleteObjectTagging` 任務。

   在此範例中，`--report` 區段中的值會指定將產生之任務報告的儲存貯體、字首、格式和範圍。此 `--manifest-generator` 區段會指定包含任務將對其執行動作之物件的來源儲存貯體的相關資訊、將為任務產生的清單檔案輸出清單的相關資訊，以及用來縮小要納入清單檔案中之物件範圍的篩選條件，包括建立日期、名稱限制、大小和儲存類別。此命令也會指定任務的優先順序、IAM 角色和 AWS 區域。

   如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [https://docs.aws.amazon.com/cli/latest/reference/s3control/create-job.html](https://docs.aws.amazon.com/cli/latest/reference/s3control/create-job.html)。

   若要使用此範例命令，請以您自己的資訊取代 `user input placeholders`。將 *`IAM-role`* 取代為您先前建立之 IAM 角色的 ARN。

   ```
   aws s3control create-job \
       --account-id 012345678901 \
       --operation '{
           "S3DeleteObjectTagging": {}
       }' \
       --report '{
           "Bucket":"arn:aws:s3:::amzn-s3-demo-completion-report-bucket",
           "Prefix":"reports", 
           "Format":"Report_CSV_20180820",
           "Enabled":true,
           "ReportScope":"AllTasks"
       }' \
       --manifest-generator '{
           "S3JobManifestGenerator": {
             "ExpectedBucketOwner": "012345678901",
             "SourceBucket": "arn:aws:s3:::amzn-s3-demo-source-bucket",
             "EnableManifestOutput": true,
             "ManifestOutputLocation": {
               "ExpectedManifestBucketOwner": "012345678901",
               "Bucket": "arn:aws:s3:::amzn-s3-demo-manifest-bucket",
               "ManifestPrefix": "prefix",
               "ManifestFormat": "S3InventoryReport_CSV_20211130"
             },
             "Filter": {
               "CreatedAfter": "2023-09-01",
               "CreatedBefore": "2023-10-01",
               "KeyNameConstraint": {
                 "MatchAnyPrefix": [
                   "prefix"
                 ],
                 "MatchAnySuffix": [
                   "suffix"
                 ]
               },
               "ObjectSizeGreaterThanBytes": 100,
               "ObjectSizeLessThanBytes": 200,
               "MatchAnyStorageClass": [
                 "STANDARD",
                 "STANDARD_IA"
               ]
             }
           }
         }' \
        --priority 2 \
        --role-arn IAM-role \
        --region us-east-1
   ```

   為了回應，Amazon S3 會傳回任務 ID (例如 `00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c`)。您將需要此任務 ID 來識別、監控或修改任務。

------

### 使用 適用於 Java 的 AWS SDK
<a name="batch-ops-examples-java-create-job"></a>

若要使用適用於 Java 的 AWS 開發套件建立批次操作任務，您可以根據指定現有資訊清單或自動產生資訊清單，在兩種方法之間進行選擇：
+ *指定現有資訊清單：*建立可對現有資訊清單檔案中列出的物件採取行動的 S3 Batch Operations 作業 (例如 `S3PutObjectTagging`)。此方法要求您提供資訊清單位置、ETag 和格式規格。
+ *自動產生資訊清單：*建立可根據物件篩選條件 (包括建立日期、索引鍵名稱和大小限制)，自動產生資訊清單的 S3 Batch Operations 作業 (例如 `s3PutObjectCopy`)。

這兩種方法都使用 S3Control 用戶端來設定任務操作、資訊清單規格、任務報告、IAM 角色和其他任務參數，包括優先順序和確認要求。

如需如何使用適用於 Java 的 AWS SDK 建立 S3 批次操作任務的範例，請參閱《*Amazon S3 API 參考*》中的[建立批次任務以複製物件](https://docs.aws.amazon.com/AmazonS3/latest/API/s3-control_example_s3-control_CreateJob_section.html)。

### 使用 REST API
<a name="batch-ops-examples-rest-create-job"></a>

您可以使用 REST API 建立批次操作任務。如需詳細資訊，請參閱 Amazon Simple Storage Service API 參考**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)。

## 任務回應
<a name="batch-ops-create-job-response-elements"></a>

如果 `CreateJob` 請求成功，Amazon S3 會傳回任務 ID。任務 ID 是 Amazon S3 自動產生的唯一識別符，讓您可以識別批次操作並監控其狀態。

當您透過 AWS CLI、 AWS SDKs或 REST API 建立任務時，您可以設定 S3 批次操作以開始自動處理任務。任務會在準備好後立即開始執行，而不會等待優先順序更高的任務。

當您透過 Amazon S3 主控台建立任務時，您必須檢閱任務詳細資訊，並確認您希望在 Batch Operations 開始處理任務之前執行該任務。如果任務維持暫停狀態超過 30 天，將會失敗。