本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 S3 批次操作任務
您可以使用 Amazon S3 Batch Operations,在特定 Amazon S3 物件清單上執行大規模的批次操作。本節說明建立 S3 批次操作任務所需的資訊,以及 CreateJob 要求的結果,它還提供使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI) 和 建立批次操作任務的說明 適用於 Java 的 AWS SDK。
建立 S3 批次操作任務時,您可以請求所有任務或僅限失敗任務的完成報告。只要順利叫用至少一個任務,S3 Batch Operations 就會產生已完成、失敗或已取消任務的報告。如需詳細資訊,請參閱範例:S3 批次操作完成報告。
下列影片提供如何使用 Amazon S3 主控台建立 Batch Operations 任務的簡短示範。
批次操作任務請求元素
若要建立 S3 批次操作任務,您必須提供下列資訊:
- 操作
-
請指定希望 S3 批次操作針對資訊清單中物件執行的操作。每個操作類型都接受該操作特有的參數。您可以透過 Batch Operations 大量執行操作,結果與您在每一個物件上逐一執行操作相同。
- 資訊清單
-
資訊清單是 Amazon S3 物件清單,其中包含您希望 Amazon S3 採取行動的物件金鑰。您可以使用下列方法指定 Batch Operations 任務的清單檔案:
-
Direct Batch Operations 會根據您指定的中繼資料產生物件清單。您可以將此清單儲存為資訊清單檔案,並在建立任務時使用它。此選項適用於您使用 Amazon S3 主控台、、 AWS CLI AWS SDKs 或 Amazon S3 REST API 建立的任何任務類型。
-
根據現有的複寫組態自動產生物件清單。您可以將此清單儲存為資訊清單檔案,並再次用於未來的任務。
-
手動建立新的清單檔案。
-
使用現有的清單檔案。
注意
-
無論您如何指定要處理的物件,資訊清單本身都必須存放在一般用途儲存貯體中。批次操作無法從 匯入現有資訊清單,或將產生的物件清單儲存為資訊清單至目錄儲存貯體。不過,清單檔案內描述的物件可以儲存在目錄儲存貯體中。如需詳細資訊,請參閱目錄儲存貯體。
-
如果您清單檔案中的物件位於已進行版本控制的儲存貯體中,指定物件的版本 ID 將會指示 Batch Operations 對特定版本執行操作。如果未指定版本 ID,則 Batch Operations 會對物件的最新版本執行操作。如果您的清單檔案包含版本 ID 欄位,您必須為資訊清單中的所有物件提供一個版本 ID。
如需詳細資訊,請參閱指定資訊清單。
-
- 優先順序
-
請使用任務優先順序,指出此任務與您帳戶中執行之其他任務的相對優先順序。數字越大表示優先順序越高。
任務優先順序僅在相對於為同一帳戶和區域中的其他任務所設定的優先順序有意義。您可以選擇任何適合您的編號系統。例如,您可能想要對所有還原 (
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 角色的詳細資訊,請參閱《IAM 使用者指南》中的 IAM 角色。
如需 Amazon S3 許可的詳細資訊,請參閱 Amazon S3 的政策動作。
注意
對目錄儲存貯體執行動作的 Batch Operations 任務須具備特定許可。如需詳細資訊,請參閱適用於 S3 Express One Zone 的AWS Identity and Access Management (IAM)。
- 報告
-
指定是否希望 S3 批次操作產生完整報告。如果您請求完成報告,您也必須在此元素中提供報告的參數。需要下列資訊:
-
您希望在其中存放報告的儲存貯體
注意
報告必須儲存在一般用途儲存貯體中。Batch Operations 無法將報告儲存至目錄儲存貯體。如需詳細資訊,請參閱目錄儲存貯體。
-
報告的格式
-
您希望報告包含所有任務的詳細資訊,還是僅限失敗的任務
-
選擇性的字首字串
如果提供
CreateJob.Report.ExpectedBucketOwner欄位,則需要完成報告儲存貯體擁有者相符。如果不相符,則任務會失敗。注意
完成報告一律會使用 Amazon S3 受管金鑰的伺服器端加密 (SSE-S3) 進行加密。
-
- 標籤 (選用)
-
您可以透過新增標籤,標示和控制對 S3 批次操作任務的存取權。您可以使用標籤來識別負責 Batch Operations 任務的人員,或控制使用者與 Batch Operations 任務互動的方式。任務標籤的存在可以授與或限制使用者的以下能力:取消任務、啟動處於確認狀態的任務或變更任務的優先順序層級。例如,假設建立的任務具有標籤
"Department=Finance",您就可以授予使用者調用CreateJob操作的許可。您可以建立已連接標籤的任務,也可以在建立任務後將標籤新增至任務。
如需詳細資訊,請參閱使用標籤控制存取和標記任務。
- 描述 (選用)
-
若要追蹤和監控任務,您也可以提供最多 256 個字元的說明。每當 Amazon S3 在 Amazon S3 主控台上傳回任務的相關資訊或顯示任務的詳細資訊時,都會包含此說明。您可以輕鬆地根據指派的描述來排序和篩選任務。描述不需要是唯一的,因此您可以使用描述作為類別 (例如「每週複製日誌任務」) 來協助您追蹤相似任務的群組。
指定資訊清單
資訊清單是 Amazon S3 物件清單,其中包含您希望 Amazon S3 採取行動的物件金鑰。您可以使用下列方法指定 Batch Operations 任務的清單檔案:
-
Direct Batch Operations 會根據您指定的中繼資料產生物件清單。您可以將此清單儲存為資訊清單,並在建立任務時使用它。此選項適用於您使用 Amazon S3 主控台、、 AWS CLI AWS SDKs 或 Amazon S3 REST API 建立的任何任務類型。
-
根據現有的複寫組態自動產生物件清單。您可以將此清單儲存為資訊清單,並再次用於未來的任務。
-
手動建立新的清單檔案。
-
使用現有的清單檔案。
注意
Amazon S3 Batch Operations 不支援產生跨區域物件清單。
無論您如何指定要處理的物件,資訊清單本身都必須存放在一般用途儲存貯體中。批次操作無法從 匯入現有資訊清單,或將產生的物件清單儲存為資訊清單至目錄儲存貯體。不過,清單檔案內描述的物件可以儲存在目錄儲存貯體中。如需詳細資訊,請參閱目錄儲存貯體。
自動產生物件清單並將其儲存為資訊清單檔案
您可以指示 Amazon S3 根據指定的中繼資料自動產生物件清單。您可以將此清單儲存為資訊清單,並在建立任務時使用它。此選項適用於您使用 Amazon S3 主控台、、 AWS CLI AWS SDKs 或 Amazon S3 REST API 建立的任何任務類型。
若要自動產生物件清單並將其儲存為資訊清單檔案,請在任務建立請求中指定下列元素:
-
包含來源物件的儲存貯體相關資訊,包括儲存貯體擁有者和 Amazon Resource Name (ARN)。
-
資訊清單輸出的相關資訊,包括建立資訊清單檔案的旗標、輸出儲存貯體擁有者、ARN、字首、檔案格式和加密類型。
-
依物件建立日期、金鑰名稱、大小、加密類型、KMS 金鑰 ARN、儲存貯體金鑰和儲存體類別篩選物件的選用條件。在複寫任務中,您也可以使用標籤篩選物件。
物件篩選條件
若要篩選要包含在自動產生的物件清單中的物件清單,您可以指定下列條件。如需詳細資訊,請參閱 Amazon S3 API 參考中的 JobManifestGeneratorFilter。
- 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,您也可以選擇依儲存貯體金鑰啟用狀態進一步篩選結果。
- MatchAnyStorageClass
-
如有提供,則產生的清單檔案只會包含以指定的儲存類別儲存的來源儲存貯體物件。
- ObjectReplicationStatuses
-
如有提供,則產生的清單檔案只會包含具有其中一種指定複寫狀態的來源儲存貯體物件。
- ObjectSizeGreaterThanBytes
-
如有提供,則產生的清單檔案只會包含檔案大小大於所指定位元組數目的來源儲存貯體物件。
- ObjectSizeLessThanBytes
-
如有提供,則產生的清單檔案只會包含檔案大小小於所指定位元組數目的來源儲存貯體物件。
注意
您無法複製已自動產生物件清單並儲存為資訊清單的大多數任務。除非批次複寫任務使用 KeyNameConstraint、MatchAnyStorageClass、ObjectSizeGreaterThanBytes 或 ObjectSizeLessThanBytes 清單檔案篩選條件,否則可以複製這些任務。
指定清單檔案條件的語法會根據您用來建立任務的方法而有所不同。如需範例,請參閱 建立任務。
建立清單檔案
若要手動建立清單檔案,您可指定清單檔案物件索引鍵、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
使用現有的資訊清單
您可以使用下列兩種格式之一,指定現有的資訊清單來建立批次操作任務:
-
Amazon S3 庫存清單報告:必須是 CSV 格式的 Amazon S3 庫存清單報告。您必須指定與庫存報告關聯的
manifest.json檔案。如需庫存報告的詳細資訊,請參閱 使用 S3 庫存清單編目和分析資料。如果庫存報告包含版本 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 參考》中的 JobManifestSpec。
注意
S3 Batch Operations 不支援使用 SSE-KMS 加密的 CSV 清單檔案。
重要
如果您使用手動建立的清單檔案和版本控制的儲存貯體時,我們建議您指定物件的版本 ID。建立任務時,S3 批次作業會在執行任務之前剖析整個資訊清單。但是,它不會為儲存貯體的狀態拍攝「快照」。
由於清單檔案可能包含數十億個物件,因此任務可能需要很長的時間來執行,這樣可能會影響任務採取行動的物件版本。假設您在任務執行時,以新版本覆寫物件,而您未指定該物件的版本 ID。在此情況下,Amazon S3 會對物件的最新版本執行操作,而非您建立任務時已存在的版本。避免此行為最簡單的方式,便是為資訊清單中列出的物件指定版本 ID。
建立任務
您可以使用 Amazon S3 主控台、 AWS CLI、 AWS SDKs 或 Amazon S3 REST API 來建立 Amazon S3 批次操作任務。 Amazon S3
如需建立任務請求的詳細資訊,請參閱 批次操作任務請求元素。
先決條件
建立 Batch Operations 任務之前,請先確認您已設定相關許可。如需詳細資訊,請參閱授予批次操作的許可。
使用 S3 主控台建立批次操作任務
登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/s3/
的 Amazon S3 主控台。 -
在 Amazon S3 主控台的左側導覽窗格上,選擇 Batch Operations。
-
選擇建立作業。
-
在選擇區域和範圍下,選擇並檢視您要建立任務 AWS 的區域。
注意
對於複製操作,您必須在與目的地儲存貯體相同的區域中建立作業。對於所有其他操作,您必須在與資訊清單中的物件相同的區域中建立作業。
-
針對範圍,指定批次操作任務將對其採取行動的物件清單。
在物件清單下,您可以選擇使用物件清單產生資訊清單、使用複寫組態產生資訊清單,或使用現有的資訊清單。
-
如果您選擇產生物件清單,會根據您指定的來源位置和中繼資料自動產生物件清單。您可以將此清單儲存為資訊清單,並再次用於未來的任務。
注意
注意:若要產生物件清單,您必須擁有
s3:PutInventoryConfiguration許可。來源儲存貯體必須是一般用途儲存貯體。 -
如果您選擇使用現有的資訊清單,您可以從現有的資訊清單匯入物件清單。資訊清單是 S3 庫存報告或 CV 檔案,列出您希望 Batch Operations 採取動作的特定物件。
-
如果您選擇使用複寫組態,您可以根據現有的複寫組態自動產生物件清單。您可以將此清單儲存為資訊清單,並再次用於未來的任務。
在此範例中,選擇產生物件清單。
-
-
針對來源帳戶,選擇擁有來源物件的帳戶。
-
在來源下,輸入來源的路徑,例如
s3://amzn-s3-demo-bucket。 -
在物件篩選條件下,您可以使用篩選條件依物件金鑰的任何部分進行篩選,或依物件金鑰的結尾進行篩選。物件金鑰篩選條件可協助精簡資訊清單中要使用的物件清單。針對物件中繼資料篩選條件,選擇篩選條件以進一步定義要包含在資訊清單中的物件範圍。
-
在選擇操作下,選擇您要在資訊清單中列出的所有物件上執行的操作類型。如果您的資訊清單參考存放在目錄儲存貯體中的物件,請僅使用複製或叫用 AWS Lambda 函數操作。不支援所有其他操作
選取操作類型後,選擇下一步。
填寫 Configure additional options (設定其他選項) 的資訊,然後選擇 Next (下一步)。
在 Review (檢閱) 中,確認您的設定。如果您需要進行變更,請選擇上一步。否則,您可以選擇建立任務。
若要使用 建立批次操作任務 AWS CLI,請根據您要指定現有資訊清單或自動產生資訊清單,選擇下列其中一個範例。
若要使用適用於 Java 的 AWS 開發套件建立批次操作任務,您可以根據指定現有資訊清單或自動產生資訊清單,在兩種方法之間進行選擇:
-
指定現有資訊清單:建立 S3 批次操作任務 (例如
S3PutObjectTagging),以對現有資訊清單檔案中列出的物件採取行動。此方法要求您提供資訊清單位置、ETag 和格式規格。 -
自動產生資訊清單:建立根據物件篩選條件自動產生資訊清單的 S3 批次操作任務 (例如
s3PutObjectCopy),包括建立日期、金鑰名稱和大小限制。
這兩種方法都使用 S3Control 用戶端來設定任務操作、資訊清單規格、任務報告、IAM 角色和其他任務參數,包括優先順序和確認要求。
如需如何使用適用於 Java 的 AWS SDK 建立 S3 批次操作任務的範例,請參閱《Amazon S3 API 參考》中的建立批次任務以複製物件。
您可以使用 REST API 建立批次操作任務。如需詳細資訊,請參閱 Amazon Simple Storage Service API 參考中的 CreateJob。
任務回應
如果 CreateJob 請求成功,Amazon S3 會傳回任務 ID。任務 ID 是 Amazon S3 自動產生的唯一識別符,讓您可以識別批次操作並監控其狀態。
當您透過 AWS CLI、 AWS SDKs或 REST API 建立任務時,您可以設定 S3 批次操作以開始自動處理任務。任務會在準備好後立即開始執行,而不會等待優先順序更高的任務。
當您透過 Amazon S3 主控台建立任務時,您必須檢閱任務詳細資訊,並確認您希望在 Batch Operations 開始處理任務之前執行該任務。如果任務保持在暫停狀態的時間超過 30 天,則該任務會失敗。