Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
不完全なマルチパートアップロードをクリーンアップするために、Amazon S3 ライフサイクル設定ルールを確認する方法を教えてください。
Amazon Simple Storage Service (Amazon S3) ライフサイクル設定ルールを設定して、不完全なマルチパートアップロードをクリーンアップしました。ルールが機能することを確認したいと思います。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) を使用してルールを設定すると、そのルールは AbortinCompleteMultiPartUpload と呼ばれます。
ライフサイクル設定ルールは、次のいずれかの方法で確認できます。
クエリサーバーアクセスログ
サーバーアクセスログをクエリするには、ライフサイクルルールを実行するように設定する前に、バケットでサーバーアクセスログを有効にする必要があります。ログが利用可能になったら、ログを確認して、不完全なマルチパートアップロードがルールによってクリーンアップされたかどうかを確認できます。サーバーアクセスログが報告する操作の詳細については、「ライフサイクルとログ記録」を参照してください。
AWS CLI を使用してマルチパートアップロードの一部をアップロードしてルールをテストする
サーバーアクセスログ記録を有効にしていない場合は、不完全なマルチパートアップロードを実行してルールをテストできます。
**注:**次の例では、AWS CLI を使用してマルチパートアップロードを実行します。AWS SDK を使用してマルチパートアップロードを実行するには、「マルチパートアップロードを使用したオブジェクトのアップロードとコピー」を参照してください。
-
アップロードするファイルを、複数のパートに分割します。たとえば、Linux オペレーティングシステムを使用している場合は、次のような split コマンドを実行できます。
split /path/to/filetoupload -
AWS CLI を使用して create-multipart-upload コマンドを実行して、次のようなマルチパートアップロードを開始します。
aws s3api create-multipart-upload --bucket awsexamplebucket --key large_test_file -
このコマンドは、UploadID を含む出力を返します。これ以降の手順で参照できるように UploadID 値をコピーします。コマンドの出力は次のようになります。
{ "AbortDate": "Mon, 03 Jun 2019 00:00:00 GMT", "AbortRuleId": "multipartcleanup", "Bucket": "awsexamplebucket", "Key": "objectname", "UploadId": "exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk" } -
upload-part コマンドを実行して、次のように、ファイルの最初の部分をアップロードします。すべての値をバケット、ファイル、マルチパートアップロードの値に変更します。
aws s3api upload-part --bucket awsexamplebucket --key large_test_file --part-number 1 --body large_test_file.001 --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk -
このコマンドは、アップロードされたファイルの一部である ETag 値を含む出力を返します。これ以降の手順で参照できるように ETag 値をコピーします。コマンドの出力は次のようになります。
-
ファイルの一部について、手順 3 と 4 を繰り返します。このテストでは、ファイルを構成するすべてのパートをアップロードしないでください。
{ "ETag": "\"example8be9a0268ebfb8b115d4c1fd3\"" }注: アップロードする新規のパートごとに 1 ずつパート番号を大きくします。
-
このテストでは、マルチパートアップロード操作を完了または中止しないでください。代わりに、次のように list-parts コマンドを実行してアップロードされたパートを書き留めてください。
aws s3api list-parts --bucket awsexamplebucket --key large_test_file --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk -
このコマンドは、次のようなパートのリストを返します。
{ "Parts": [ { "PartNumber": 1, "LastModified": "2019-06-01T18:17:39.000Z", "ETag": "\"example8be9a0268ebfb8b115d4c1fd3\"", "Size": 162641 }, { "PartNumber": 2, "LastModified": "2019-06-01T18:18:19.000Z", "ETag": "\"example246e31ab807da6f62802c1ae8\"", "Size": 3961 } ], "Initiator": { "ID": "arn:aws:iam::111122223333:user/jane", "DisplayName": "jane" }, "Owner": { "DisplayName": "bucketowner", "ID": "examplea2395fe1985ffabfe0c17d3522e5bc7fa1a2d048f8fc764d7709da80d" }, "StorageClass": "STANDARD" } -
次のような list-multipart-uploads コマンドを実行して、バケットで進行中のマルチパートアップロードを確認します。
aws s3api list-multipart-uploads --bucket awsexamplebucketこのコマンドは、次のような進行中のマルチパートアップロードのリストを返します。
{ "Uploads": [ { "UploadId": "exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk", "Key": "large_test_file", "Initiated": "2019-06-01T17:08:33.000Z", "StorageClass": "STANDARD", "Owner": { "DisplayName": "bucketowner", "ID": "examplea2395fe1985ffabfe0c17d3522e5bc7fa1a2d048f8fc764d7709da80d" }, "Initiator": { "ID": "arn:aws:iam::111122223333:user/jane", "DisplayName": "jane" } } ] } -
ライフサイクル設定ルールを設定するときに、マルチパートアップロードの開始から何日後にクリーンアップを行うかを指定しました。ルールに設定した日数だけ待ちます。
-
list-parts コマンドをもう一度実行して、不完全なマルチパートアップロードのパートが削除されたことを確認します。ルールによってパートが削除された後、コマンドは次の応答を返します。"An error occurred (NoSuchUpload) when calling the ListParts operation: The specified upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed."
-
list-multipart-uploads コマンドをもう一度実行して、マルチパート操作が停止したことを確認します。ルールによってマルチパート操作が停止すると、コマンドは出力を返しません。
関連情報
関連するコンテンツ
- 質問済み 1年前
