Salta al contenuto

Come posso verificare una regola di configurazione del ciclo di vita di Amazon S3 per eliminare i caricamenti in più parti incompleti?

5 minuti di lettura
0

Ho impostato una regola di configurazione del ciclo di vita di Amazon Simple Storage Service (Amazon S3) per eliminare i caricamenti in più parti incompleti. Desidero verificare che la regola funzioni.

Risoluzione

Nota: Quando utilizzi l'Interfaccia della linea di comando AWS (AWS CLI) per impostare la regola, la regola si chiama AbortIncompleteMultipartUpload.

Puoi verificare la regola di configurazione del ciclo di vita in uno dei seguenti modi.

Log di accesso al server di query

Per eseguire query sui log di accesso al server, devi avere la registrazione degli accessi al server abilitata nel bucket prima che la regola del ciclo di vita sia impostata per l'esecuzione. Una volta disponibili i log, puoi esaminarli per verificare se la regola ha eliminato un caricamento in più parti incompleto. Per ulteriori informazioni sulle operazioni su cui riportano i log di accesso al server, consulta Ciclo di vita S3 e registrazione.

Verifica la regola caricando alcune parti di un caricamento in più parti utilizzando AWS CLI

Se non hai abilitato la registrazione degli accessi al server, puoi verificare la regola eseguendo un caricamento in più incompleto:

Nota: il seguente esempio utilizza AWS CLI per eseguire un caricamento in più parti. Per utilizzare un AWS SDK per eseguire un caricamento in più parti, consulta Caricamento e copia di oggetti utilizzando il caricamento in più parti in Amazon S3.

  1. Dividi il file che vuoi caricare in più parti. Ad esempio, se utilizzi un sistema operativo Linux, puoi eseguire un comando split simile al seguente:

    split /path/to/filetoupload
  2. Esegui il comando create-multipart-upload utilizzando AWS CLI per avviare un caricamento in più parti simile al seguente:

    aws s3api create-multipart-upload --bucket awsexamplebucket --key large_test_file
  3. Il comando restituisce un output che contiene il valore UploadID. Copia il valore UploadID come riferimento per i passaggi successivi. L'output del comando è simile al seguente:

    {
        "AbortDate": "Mon, 03 Jun 2019 00:00:00 GMT",
        "AbortRuleId": "multipartcleanup",
        "Bucket": "awsexamplebucket",
        "Key": "objectname",
        "UploadId": "exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk"
    }
  4. Esegui il comando upload-part per caricare la prima parte del file in modo simile al seguente. Sostituisci tutti i valori con i valori per il bucket, il file e il caricamento in più parti:

    aws s3api upload-part --bucket awsexamplebucket --key large_test_file --part-number 1 --body large_test_file.001 --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk
  5. Il comando restituisce un output che contiene un valore ETag per la parte del file che hai caricato. Copia il valore ETag come riferimento per i passaggi successivi. L'output del comando è simile al seguente:

  6. Ripeti i passaggi 3 e 4 per alcune parti del file. Per questa prova, non caricare tutte le parti per completare il file.

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

    Nota: assicurati di aumentare il numero di parti a ogni nuova parte che carichi.

  7. Per questa prova, non completare o interrompere l'operazione di caricamento in più parti. Annota invece le parti che sono state caricate eseguendo un comando list-parts simile al seguente:

    aws s3api list-parts --bucket awsexamplebucket --key large_test_file --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk
  8. Il comando restituisce un elenco delle parti simile al seguente:

    {
        "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. Annota i caricamenti in più parti in corso per il bucket eseguendo un comando list-multipart-uploads simile al seguente:

    aws s3api list-multipart-uploads --bucket awsexamplebucket

    Il comando restituisce un elenco di caricamenti in più parti in corso simile al seguente:

    {
        "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. Nel momento in cui hai impostato la regola di configurazione del ciclo di vita, hai anche specificato quanti giorni dopo l'inizio di un caricamento in più parti deve avvenire la pulizia. Attendi il numero di giorni che hai impostato per la regola.

  11. Esegui nuovamente il comando list-parts per verificare che le parti del caricamento in più parti incompleto siano state eliminate. Dopo che le parti sono state eliminate dalla regola, il comando restituisce questa risposta: "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. Esegui nuovamente il comando list-multipart-uploads per verificare che l'operazione di caricamento in più parti sia stata interrotta. Dopo che l'operazione di caricamento in più parti è stata interrotta dalla regola, il comando non restituisce alcun output.

Informazioni correlate

How do I use the AWS CLI to upload a large file in multiple parts to Amazon S3? (Come posso utilizzare AWS CLI per caricare un file di grandi dimensioni in più parti in Amazon S3?)

AWS UFFICIALEAggiornata 2 anni fa