Caricamento di archivi di grandi dimensioni mediante l' AWS CLI - Amazon Glacier

Questa pagina è riservata ai clienti esistenti del servizio Amazon Glacier che utilizzano Vaults e l'API REST originale del 2012.

Se stai cercando soluzioni di archiviazione, ti consigliamo di utilizzare le classi di storage Amazon Glacier in Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive. Per ulteriori informazioni su queste opzioni di storage, consulta le classi di storage di Amazon Glacier.

Amazon Glacier (servizio autonomo originale basato su vault) non accetterà più nuovi clienti a partire dal 15 dicembre 2025, senza alcun impatto sui clienti esistenti. Amazon Glacier è un servizio APIs autonomo che archivia i dati in vault ed è distinto dalle classi di storage Amazon S3 e Amazon S3 Glacier. I dati esistenti rimarranno sicuri e accessibili in Amazon Glacier a tempo indeterminato. Non è richiesta alcuna migrazione. Per uno storage di archiviazione a lungo termine a basso costo, AWS consiglia le classi di storage Amazon S3 Glacier, che offrono un'esperienza cliente superiore con disponibilità Regione AWS completa, costi inferiori e integrazione dei servizi APIs basata su bucket S3. AWS Se desideri funzionalità avanzate, prendi in considerazione la migrazione alle classi di storage Amazon S3 Glacier utilizzando la AWS nostra Solutions Guidance per il trasferimento di dati dai vault Amazon Glacier alle classi di storage Amazon S3 Glacier.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Caricamento di archivi di grandi dimensioni mediante l' AWS CLI

Puoi caricare un archivio in Amazon Glacier (Amazon Glacier) utilizzando (). AWS Command Line Interface AWS CLI Per migliorare l'esperienza di caricamento per archivi di grandi dimensioni, Amazon Glacier fornisce diverse operazioni API per supportare caricamenti multiparte. Utilizzando queste operazioni API, puoi caricare gli archivi in parti. Queste parti possono essere caricate in modo indipendente, in qualsiasi ordine e in parallelo. Se il caricamento di una parte non ha esito positivo, è sufficiente caricare di nuovo quella parte e non l'intero archivio. Puoi utilizzare i caricamenti in più parti per archivi con una dimensione compresa tra 1 byte e 40.000 gibibyte (GiB).

Per ulteriori informazioni sui caricamenti multiparte di Amazon Glacier, consulta. Caricamento in parti di archivi di grandi dimensioni (caricamento in più parti)

(Prerequisito) Configurazione di AWS CLI

  1. Scarica e configura la AWS CLI. Per le istruzioni, consulta i seguenti argomenti nella Guida per l'utente dell'AWS Command Line Interface :

    Installazione di AWS Command Line Interface

    Configurazione di AWS Command Line Interface

  2. Verifica la AWS CLI configurazione inserendo i seguenti comandi al prompt dei comandi. Poiché entrambi questi comandi non forniscono credenziali in modo esplicito, vengono utilizzate le credenziali del profilo predefinito.

    • Prova a utilizzare il comando help.

      aws help
    • Per ottenere un elenco dei vault Amazon Glacier sull'account configurato, usa il comando. list-vaults Sostituiscilo 123456789012 con il tuo ID. Account AWS

      aws glacier list-vaults --account-id 123456789012
    • Per vedere i dati di configurazione correnti per AWS CLI, usa il aws configure list comando.

      aws configure list

(Prerequisito) Installa Python

Per completare un caricamento in più parti, devi calcolare l'hash SHA256 dell'albero dell'archivio che stai caricando. Questa operazione è diversa dal calcolo dell'hash SHA256 ad albero del file che desideri caricare. Per calcolare l'hash dell' SHA256 albero dell'archivio che stai caricando, puoi usare C# (Javacon.NET) o. Python In questo esempio verrà utilizzato Python. Per istruzioni sull'uso di Java o C#, consulta Calcolo di checksum.

Per informazioni sull'installazione di Python, consulta la pagina Installazione o aggiornamento di Python nella Guida per lo sviluppatore di Boto3.

(Prerequisito) Creare un Amazon Glacier Vault

Per utilizzare l'esempio seguente, devi avere almeno un vault Amazon Glacier creato. Per ulteriori informazioni sulla creazione di vault, consulta Creazione di un vault in Amazon Glacier.

Esempio: caricamento di archivi di grandi dimensioni in parti utilizzando il AWS CLI

In questo esempio, creerai un file e utilizzerai operazioni API di caricamento in più parti per caricare questo file, in parti su Amazon Glacier.

Importante

Prima di intraprendere questa procedura, accertati di avere eseguito tutti i passaggi necessari. Per caricare un archivio, è necessario aver creato un archivio, AWS CLI configurarlo ed essere pronti a utilizzare Java C# o Python a calcolare l'hash di un SHA256 albero.

La procedura seguente utilizza i comandi initiate-multipart-upload eupload-multipart-part. complete-multipart-upload AWS CLI

Per ulteriori informazioni dettagliate su ognuno di questi comandi, consulta initiate-multipart-upload, upload-multipart-part e complete-multipart-upload nella Guida di riferimento ai comandi AWS CLI .

  1. Usa il comando initiate-multipart-upload per creare una risorsa di caricamento in più parti. Nella richiesta, specifica la dimensione della parte in numero di byte. Ogni parte che carichi, tranne l'ultima, deve essere di quella dimensione. Non è necessario conoscere la dimensione globale dell'archivio quando si avvia un caricamento. Tuttavia, avrai bisogno della dimensione totale, in byte, di ogni parte per completare il caricamento nella fase finale.

    Nel comando seguente, sostituisci i valori per i parametri --vault-name e --account-ID con le tue informazioni. Questo comando specifica che caricherai un archivio con una dimensione parziale di 1 mebibyte (MiB) (1024 x 1024 byte) per file. Se necessario, sostituisci il valore di questo parametro --part-size.

    aws glacier initiate-multipart-upload --vault-name awsexamplevault --part-size 1048576 --account-id 123456789012

    Output previsto:

    { "location": "/123456789012/vaults/awsexamplevault/multipart-uploads/uploadId", "uploadId": "uploadId" }

    Al termine, il comando restituirà l'ID e la posizione di caricamento della risorsa di caricamento multiparte in Amazon Glacier. Sarà necessario usare questo ID di caricamento nei passaggi successivi.

  2. Per questo esempio, è possibile utilizzare i seguenti comandi per creare un file da 4,4 MiB, dividerlo in blocchi da 1 MiB e caricare ogni blocco. Per caricare i propri file, è possibile seguire una procedura simile suddividendo i dati in blocchi e caricando ogni parte.

    Linux o macOS:

    Il comando seguente crea un file da 4,4 MiB, denominato file_to_upload, su Linux o macOS.

    mkfile -n 9000b file_to_upload
    Windows

    Il comando seguente crea un file da 4,4 MiB, denominato file_to_upload, su Windows.

    fsutil file createnew file_to_upload 4608000
  3. Successivamente, dividerai questo file in blocchi da 1 MiB.

    split -b 1048576 file_to_upload chunk

    Ora hai le seguenti cinque parti. Le prime quattro sono da 1 MiB e l'ultima è di circa 400 kibibyte (KiB).

    chunkaa chunkab chunkac chunkad chunkae
  4. Usa il comandi upload-multipart-part per caricare una parte di un archivio. Puoi caricare gli archivi in parti in un qualsiasi ordine. Puoi anche caricare le parti in parallelo. In un caricamento in più parti è consentito caricare fino a 10.000 parti.

    Nel comando seguente, sostituisci i valori per i parametri --vault-name, --account-ID e --upload-id. L'ID di caricamento deve corrispondere all'ID fornito come output del comando initiate-multipart-upload. Il parametro --range specifica che caricherai una parte con una dimensione di 1 MiB (1024 x 1024 byte). Questa dimensione deve corrispondere a quella specificata nel comando initiate-multipart-upload. Regola il valore della dimensione, se necessario. Il parametro --body specifica il nome della parte che stai caricando.

    aws glacier upload-multipart-part --body chunkaa --range='bytes 0-1048575/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID

    In caso di successo, il comando produrrà un output contenente il checksum per la parte caricata.

  5. Esegui nuovamente il comando upload-multipart-part per caricare le parti rimanenti del caricamento in più parti. Aggiorna i valori dei parametri --range e –-body per ogni comando in modo che corrispondano alla parte che stai caricando.

    aws glacier upload-multipart-part --body chunkab --range='bytes 1048576-2097151/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkac --range='bytes 2097152-3145727/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkad --range='bytes 3145728-4194303/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkae --range='bytes 4194304-4607999/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    Nota

    Il valore del parametro --range del comando finale è inferiore perché la parte finale del nostro caricamento è inferiore a 1 MiB. In caso di successo, ogni comando produrrà un output contenente il checksum per ogni parte caricata.

  6. Successivamente, assemblerai l'archivio e completerai il caricamento. È necessario includere la dimensione totale e l'hash SHA256 dell'albero dell'archivio.

    Per calcolare l'hash ad SHA256 albero dell'archivio, puoi usare Java C# o. Python In questo esempio verrà utilizzato Python. Per istruzioni sull'uso di Java o C#, consulta Calcolo di checksum.

    Crea il file checksum.py di Python e inserisci il codice seguente. Se necessario, sostituisci il nome del file originale.

    from botocore.utils import calculate_tree_hash checksum = calculate_tree_hash(open('file_to_upload', 'rb')) print(checksum)
  7. Esegui checksum.py per calcolare l'hash dell' SHA256 albero. Il seguente hash potrebbe non corrispondere al tuo output.

    $ python3 checksum.py $ 3d760edb291bfc9d90d35809243de092aea4c47b308290ad12d084f69988ae0c
  8. Usa il comando complete-multipart-upload per completare il caricamento dell'archivio. Sostituisci i valori per i parametri --vault-name, --account-ID, --upload-ID e --checksum. Il valore del parametro --archive specifica la dimensione totale, in byte, dell'archivio. Questo valore deve essere la somma di tutte le dimensioni delle singole parti caricate. Se necessario, sostituisci questo valore.

    aws glacier complete-multipart-upload --archive-size 4608000 --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID --checksum checksum

    Al termine, il comando restituirà l'ID, il checksum e la posizione dell'archivio in Amazon Glacier.