不完全なマルチパートのアップロードをクリーンアップするための Amazon S3 ライフサイクル設定ルールを検証するにはどうすればよいですか?

所要時間2分
0

不完全なマルチパートアップロードをクリーンアップするための Amazon Simple Storage Service (Amazon S3) ライフサイクル設定ルールを設定しました。ルールが機能していることを確認するにはどうすればよいですか?

簡単な説明

Amazon S3 ライフサイクル設定ルールは、以下の各方法で検証できます。

  • サーバーアクセスログをクエリする。
  • AWS コマンドラインインターフェイス (AWS CLI) を使用してマルチパートアップロードの一部をアップロードすることでルールをテストする。
    注意: AWS CLI を使用してルールを設定するときは、ルールの名前が AbortIncompleteMultipartUpload になります。

解決方法

サーバーアクセスログをクエリする

サーバーアクセスログをクエリするには、S3 ライフサイクルが実行される前に、バケットでサーバーアクセスログを有効にしておく必要があります。ログが利用可能になったら、ログを確認して、ルールが不完全なマルチパートアップロードをクリーンアップしたかどうかを検証します。詳細については、「S3 ライフサイクルとログ記録」を参照してください。

AWS CLI を使用してマルチパートアップロードの一部をアップロードすることでルールをテストする

サーバーアクセスログを有効にしていない場合は、不完全なマルチパートアップロードを実行することでルールをテストできます。

注意: 以下の例では、AWS CLI を使用してマルチパートアップロードを実行します。AWS SDK を使用してマルチパートアップロードを実行するには、「Multipart upload API を使用したオブジェクトのアップロード」を参照してください。

1.    アップロードするファイルを複数の部分に分割します。例えば、Linux オペレーティングシステムを使用している場合は、split コマンドを実行します。

split /path/to/filetoupload

2.    AWS CLI を使用して create-multipart-upload コマンドを実行し、マルチパートアップロードを開始します。

aws s3api create-multipart-upload --bucket awsexamplebucket --key large_test_file

注意: AWS CLI コマンドの実行時にエラーが発生する場合は、AWS CLI の最新バージョンを使用していることを確認してください

コマンドから、UploadID が含まれる出力が返されます。

3.    この後のステップで参照するため、UploadID 値をコピーします。コマンドの出力は以下のようになります。

{
    "AbortDate": "Mon, 03 Jun 2019 00:00:00 GMT",
    "AbortRuleId": "multipartcleanup",
    "Bucket": "awsexamplebucket",
    "Key": "objectname",
    "UploadId": "exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk"
}

4.    upload-part コマンドを実行して、ファイルの最初の部分をアップロードします。

aws s3api upload-part --bucket awsexamplebucket --key large_test_file --part-number 1 --body large_test_file.001 --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk

注意: すべての値をお使いの Amazon S3 バケット、ファイル、およびマルチパートアップロードの値に置き換えてください。

コマンドが、アップロードしたファイルの部分の ETag 値が含まれる出力を返します。

5.    この後のステップで参照するため、ETag 値をコピーします。コマンドの出力は以下のようになります。

{
    "ETag": "\"example8be9a0268ebfb8b115d4c1fd3\""
}

6.    ファイルの一部で、ステップ 3 と 4 を繰り返します。このテストでは、すべての部分をアップロードしてファイルを完成させないでください。

注意: アップロードする新しい部分ごとに PartNumber を増やしてください。

7.    このテストでは、マルチパートアップロード操作を完了または中断しないでください。その代わりに、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"
}

8.    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"
            }
        }
    ]
}

9.    S3 ライフサイクル設定ルールに設定した日数が経過するまで待ちます。(S3 ライフサイクル設定ルールには、マルチパートアップロードの開始後にクリーンアップが開始されるまでの日数が指定されています。)

10.    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."

11.    list-multipart-uploads コマンドを再度実行して、マルチパート操作が中断されたかどうかを確認します。ルールによってマルチパート操作が中断されると、コマンドは出力を返しません。


関連情報

マルチパートアップロードを使用したオブジェクトのアップロードとコピー

AWS CLI を使用して、Amazon S3 にファイルをマルチパートアップロードする方法を教えてください。

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ