スキップしてコンテンツを表示

不完全なマルチパートアップロードをクリーンアップするために、Amazon S3 ライフサイクル設定ルールを確認する方法を教えてください。

所要時間2分
0

Amazon Simple Storage Service (Amazon S3) ライフサイクル設定ルールを設定して、不完全なマルチパートアップロードをクリーンアップしました。ルールが機能することを確認したいと思います。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) を使用してルールを設定すると、そのルールは AbortinCompleteMultiPartUpload と呼ばれます。

ライフサイクル設定ルールは、次のいずれかの方法で確認できます。

クエリサーバーアクセスログ

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

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

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

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

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

    split /path/to/filetoupload
  2. AWS CLI を使用して create-multipart-upload コマンドを実行して、次のようなマルチパートアップロードを開始します。

    aws s3api create-multipart-upload --bucket awsexamplebucket --key large_test_file
  3. このコマンドは、UploadID を含む出力を返します。これ以降の手順で参照できるように 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
  5. このコマンドは、アップロードされたファイルの一部である ETag 値を含む出力を返します。これ以降の手順で参照できるように ETag 値をコピーします。コマンドの出力は次のようになります。

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

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

    注: アップロードする新規のパートごとに 1 ずつパート番号を大きくします。

  7. このテストでは、マルチパートアップロード操作を完了または中止しないでください。代わりに、次のように list-parts コマンドを実行してアップロードされたパートを書き留めてください。

    aws s3api list-parts --bucket awsexamplebucket --key large_test_file --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk
  8. このコマンドは、次のようなパートのリストを返します。

    {
        "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"
    }
  9. 次のような 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"
                }
            }
        ]
    }
  10. ライフサイクル設定ルールを設定するときに、マルチパートアップロードの開始から何日後にクリーンアップを行うかを指定しました。ルールに設定した日数だけ待ちます。

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

  12. list-multipart-uploads コマンドをもう一度実行して、マルチパート操作が停止したことを確認します。ルールによってマルチパート操作が停止すると、コマンドは出力を返しません。

関連情報

AWS CLI を使用し、大きなファイルを複数に分割して Amazon S3 にアップロードする方法を教えてください。

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

関連するコンテンツ