Carica file su un bucket Lightsail con caricamento multiparte - Amazon Lightsail

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à.

Carica file su un bucket Lightsail con caricamento multiparte

Il caricamento in più parti consente di caricare un singolo file sul bucket come un insieme di parti. Ciascuna parte è una parte contigua dei dati del file. È possibile caricare queste parti del file in modo indipendente e in qualsiasi ordine. Se la trasmissione di una parte non riesce, è possibile ritrasmettere tale parte senza influire sulle altre. Dopo aver caricato tutte le parti del file, Amazon S3 le assembla e crea l'oggetto nel bucket in Amazon Lightsail. In generale, quando la dimensione dell'oggetto raggiunge i 100 MB, si consiglia di valutare la possibilità di eseguire caricamenti in più parti anziché caricare l'oggetto in una singola operazione. Per ulteriori informazioni sui bucket, consulta Archiviazione di oggetti.

Il caricamento in più parti comporta i vantaggi riportati di seguito.

  • Throughput migliorato - È possibile caricare le parti in parallelo per migliorare il throughput.

  • Ripristino rapido dai problemi di rete. La dimensione più piccola delle parti riduce al minimo l'impatto del riavvio di un caricamento non riuscito a causa di un errore di rete.

  • Caricamento nel corso del tempo. È possibile caricare le parti del file nel tempo. Dopo l'avvio del caricamento in più parti, disponi di 24 ore per completarlo.

  • Avvio di un caricamento prima di conoscere la dimensione finale del file. È possibile caricare un file mentre viene creato.

È consigliabile utilizzare il caricamento in più parti come indicato di seguito:

  • Se si stanno caricando file di grandi dimensioni in una rete a banda larga stabile, utilizzare il caricamento in più parti per ottimizzare l'uso della larghezza di banda disponibile caricando le parti dei file in parallelo per garantire prestazioni ottimali in più thread.

  • Se il caricamento viene eseguito su una rete non stabile, utilizzare il caricamento in più parti per aumentare la resilienza agli errori di rete evitando di riavviare più volte il caricamento. Quando si utilizza il caricamento in più parti, è necessario ritentare il caricamento solo delle parti interrotte. Non è necessario avviare l'operazione o caricare nuovamente l'intero file.

Indice

Processo di caricamento in più parti

Il caricamento multiparte è un processo in tre fasi che utilizza le azioni di Amazon S3 per caricare i file nel bucket in Lightsail:

  1. Puoi avviare il caricamento in più parti utilizzando l'azione. CreateMultipartUpload

  2. Le parti del file vengono caricate utilizzando l'azione UploadPart.

  3. Il caricamento multiparte viene completato utilizzando l'CompleteMultipartUploadazione.

Nota

Puoi interrompere un caricamento in più parti dopo averlo avviato utilizzando l'azione. AbortMultipartUpload

Al termine della richiesta di caricamento in più parti, Amazon Simple Storage Service crea l'oggetto dalle parti caricate. L'utente può accedere all'oggetto nello stesso modo in cui accederebbe a qualsiasi altro oggetto nel proprio bucket.

È possibile elencare tutti i caricamenti in più parti in corso oppure ottenere un elenco delle parti caricate per un caricamento in più parti specifico. Ognuna di queste operazioni viene descritta in questa sezione.

Avvio del caricamento in più parti

Quando invii una richiesta di avvio di un caricamento in più parti, Amazon Simple Storage Service restituisce una risposta con un ID di caricamento, che rappresenta un identificativo univoco per il caricamento in più parti. È necessario includere l'ID di caricamento ogni volta che si caricano o si elencano le parti oppure ogni volta che si completa o si interrompe un caricamento. Se desideri fornire metadati che descrivano l'oggetto in fase di caricamento, devi specificarli nella richiesta di avvio del caricamento in più parti.

Caricamento delle parti

Quando si carica una parte, oltre all'ID di caricamento è necessario specificare il numero della parte. È possibile scegliere qualsiasi numero compreso tra 1 e 10.000. Il numero della parte identifica in modo univoco una parte e la relativa posizione nell'oggetto che si sta caricando. Il numero della parte scelto non deve essere in sequenza (ad esempio può essere 1, 5 e 14). Se si carica una nuova parte che utilizza lo stesso numero di una parte caricata in precedenza, quest'ultima viene sovrascritta.

Ogni volta che carichi una parte, Amazon Simple Storage Service restituisce un'ETagintestazione nella sua risposta. Per ogni caricamento di una parte, devi registrare il numero e il ETag valore della parte. Occorre includere questi valori nella successiva richiesta di complemento del caricamento in più parti.

Nota

Tutte le parti caricate durante un caricamento in più parti sono archiviate nel bucket. Queste risorse occupano lo spazio di archiviazione all'interno del bucket fino a quando non si verifica il completamento, l'interruzione o il timeout del caricamento in più parti. Per ulteriori informazioni, consulta la sezione Archiviazione del caricamento in più parti più avanti in questa guida.

Completamento del caricamento in più parti

Una volta completato un caricamento in più parti, Amazon Simple Storage Service crea un oggetto concatenando le parti in ordine crescente in base al numero della parte. Se nella richiesta di avvio del caricamento in più parti sono stati forniti i metadati dell'oggetto, Amazon Simple Storage Service li associerà all'oggetto. Una volta completata la richiesta, le parti non esisteranno più.

La richiesta di caricamento multiparte completa deve includere l'ID di caricamento e un elenco dei numeri di parte e dei ETag valori corrispondenti. La risposta di Amazon Simple Storage Service include una risposta ETag che identifica in modo univoco i dati oggetto combinati. Questo non ETag è necessariamente un MD5 hash dei dati dell'oggetto.

È possibile interrompere facoltativamente il caricamento in più parti. Una volta interrotto, non è possibile caricare di nuovo una parte che utilizza tale ID di caricamento. Tutto lo spazio di archiviazione da qualsiasi parte del caricamento in più parti annullato viene quindi liberato. Se eventuali caricamenti di parti erano in corso, possono essere eseguiti correttamente o meno anche dopo l'interruzione. Per liberare completamente lo spazio di storage utilizzato da tutte le parti, è necessario interrompere un caricamento in più parti solo al termine di tutti i caricamenti delle parti.

Elenchi dei caricamenti in più parti

È possibile elencare le parti di un caricamento in più parti specifico o tutti i caricamenti in più parti in corso. L'operazione di creazione dell'elenco delle parti restituisce informazioni sulle parti coinvolte in un caricamento in più parti specifico. Per ogni richiesta di elenco delle parti, Amazon Simple Storage Service restituisce informazioni sulle parti per il caricamento in più parti specificato, fino a un massimo di 1.000 parti. Se nel caricamento sono presenti più di 1000 parti, è necessario inviare una serie di richieste di elenco delle parti per recuperare tutte le parti. Tenere presente che l'elenco di parti restituito non include le parti ancora in fase di caricamento. L'operazione di elenco dei caricamenti in più parti consente di ottenere un elenco dei caricamenti in più parti in corso.

Un caricamento in più parti in corso è un caricamento avviato, ma non ancora completato o annullato. Ogni richiesta restituisce al massimo 1.000 caricamenti in più parti. Se sono in corso più di 1.000 caricamenti in più parti, è necessario inviare richieste aggiuntive per recuperare i caricamenti rimanenti. Utilizzare l'elenco restituito solo per la verifica. Si consiglia di non utilizzarlo quando si invia una richiesta di completamento del caricamento in più parti. Gestisci invece il tuo elenco dei codici articolo che hai specificato durante il caricamento delle parti e i ETag valori corrispondenti restituiti da Amazon Simple Storage Service.

Operazioni simultanee di caricamento in più parti

In un ambiente di sviluppo distribuito è possibile che l'applicazione avvii più aggiornamenti sullo stesso oggetto contemporaneamente. L'applicazione potrebbe avviare vari caricamenti in più parti utilizzando la stessa chiave dell'oggetto. Per ciascuno di questi caricamenti, l'applicazione può quindi caricare le parti e inviare una richiesta di completamento del caricamento ad Amazon Simple Storage Service per creare l'oggetto. Se la funzione Controllo delle versioni è abilitata per i bucket, il completamento di un caricamento in più parti crea sempre una nuova versione. Per i bucket in cui il controllo delle versioni non è abilitato, è possibile che altre richieste abbiano la precedenza, ad esempio le richieste ricevute nel periodo di tempo compreso tra l'avvio e il completamento di un caricamento in più parti.

Nota

È possibile che altre richieste abbiano la precedenza, ad esempio le richieste ricevute nel periodo di tempo compreso tra l'avvio e il completamento di un caricamento in più parti. Ad esempio, se un'altra operazione elimina una chiave dopo l'avvio del caricamento in più parti con tale chiave ma prima del relativo completamento, la risposta relativa al complemento di tale caricamento potrebbe indicare che è stato creato un oggetto senza che sia stato mai visualizzato.

Archiviazione del caricamento in più parti

Tutte le parti caricate durante un caricamento in più parti sono archiviate nel bucket. Queste risorse occupano lo spazio di archiviazione all'interno del bucket fino a quando non si verifica il completamento, l'interruzione o il timeout del caricamento in più parti. Il timeout di un caricamento in più parti, e la conseguente eliminazione, si verifica 24 ore dopo la sua creazione. Quando si interrompe un caricamento in più parti o si verifica il timeout, tutte le parti caricate vengono eliminate, liberando così lo spazio di archiviazione nel bucket.

Limiti di caricamento in più parti di Amazon Simple Storage Service

La tabella riportata di seguito fornisce le specifiche di base di un caricamento in più parti.

  • Dimensione massima oggetto: 5 TB

  • Numero massimo di parti per caricamento: 10.000

  • Numeri delle parti: 1-10.000 (inclusi)

  • Dimensione parte: 5 MB (minimo) - 5 GB (massimo). Non vi è alcun limite di dimensione per l'ultima parte del caricamento in più parti.

  • Numero massimo di parti restituite per una richiesta di elenco delle parti: 1.000

  • Numero massimo di caricamenti in più parti restituiti per una richiesta di elenco dei caricamenti in più parti: 1.000

Divisione del file da caricare

Utilizza il comando split sul sistema operativo Linux o Unix per dividere un file in più parti. Successivamente, queste parti verranno caricate nel bucket. Per il sistema operativo Windows puoi eseguire la suddivisione del file grazie ad applicazioni freeware. Dopo aver diviso il file in più parti, passa alla sezione Avvio di un caricamento in più parti in questa guida.

Avvio di un caricamento in più parti tramite la AWS CLI

Completa la procedura seguente per iniziare un caricamento in più parti utilizzando l' AWS Command Line Interface (AWS CLI). Puoi eseguire tale operazione mediante il comando create-multipart-upload. Per ulteriori informazioni, consulta la sezione create-multipart-upload AWS CLICommand Reference.

Nota

È necessario installare AWS CLI e configurarlo per Lightsail e Amazon S3 prima di continuare con questa procedura. Per ulteriori informazioni, consulta Configurare la funzionalità AWS CLI per l'utilizzo con Lightsail.

  1. Apri un prompt dei comandi o una finestra del terminale.

  2. Inserisci il comando seguente per creare un caricamento in più parti per il bucket.

    aws s3api create-multipart-upload --bucket BucketName --key ObjectKey --acl bucket-owner-full-control

    Nel comando sostituisci il seguente testo d'esempio con il proprio testo:

    • BucketName- Il nome del bucket per il quale desideri creare un caricamento multiparte.

    • ObjectKey- La chiave oggetto da utilizzare per il file che caricherai.

    Esempio:

    aws s3api create-multipart-upload --bucket amzn-s3-demo-bucket --key sailbot.mp4 --acl bucket-owner-full-control

    Il risultato dovrebbe essere analogo all'esempio seguente. La risposta include un UploadID che è necessario specificare nei comandi successivi per caricare le parti e completare il caricamento in più parti per questo oggetto.

    Risultato del create-multipart-upload comando

    Dopo aver ottenuto l'UploadID per il caricamento in più parti, passa alla sezione Caricamento di una parte tramite la AWS CLI di questa guida e inizia a caricare le parti.

Caricate una parte utilizzando AWS CLI

Completa la procedura seguente per caricare una parte di un caricamento in più parti utilizzando l' AWS Command Line Interface (AWS CLI). Puoi eseguire tale operazione mediante il comando upload-part. Per ulteriori informazioni, consulta upload-part in Riferimento ai comandi della AWS CLI .

Nota

È necessario installare AWS CLI e configurarlo per Lightsail e Amazon S3 prima di continuare con questa procedura. Per ulteriori informazioni, consulta Configurare la funzionalità AWS CLI per l'utilizzo con Lightsail.

  1. Apri un prompt dei comandi o una finestra del terminale.

  2. Inserisci il comando seguente per caricare una parte nel bucket.

    aws s3api upload-part --bucket BucketName --key ObjectKey --part-number Number --body FilePart --upload-id "UploadID" --acl bucket-owner-full-control

    Nel comando sostituisci il seguente testo d'esempio con il proprio testo:

    • BucketName- Il nome del bucket per il quale desideri creare un caricamento multiparte.

    • ObjectKey- La chiave oggetto da utilizzare per il file che caricherai.

    • Number - Il numero di parte della parte che stai caricando. Il numero della parte identifica in modo univoco una parte e la relativa posizione nell'oggetto che si sta caricando. Assicurati di aumentare in modo incrementale il parametro --part-number con ogni parte caricata. A tale scopo, numera le parti nell'ordine in cui Amazon Simple Storage Service deve assemblare l'oggetto quando completi il caricamento in più parti.

    • FilePart - Il file della parte da caricare dal computer.

    • UploadID - L'ID di caricamento del caricamento in più parti che hai creato in precedenza in questa guida.

    Esempio:

    aws s3api upload-part --bucket amzn-s3-demo-bucket --key sailbot.mp4 --part-number 1 --body sailbot.mp4.001 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control

    Il risultato dovrebbe essere analogo all'esempio seguente. Ripeti il comando upload-part per ogni parte caricata. La risposta per ogni richiesta di caricamento della parte includerà un valore ETag per la parte caricata. Registra i valori ETag per ciascuna delle parti caricate. Sono necessari tutti i valori ETag per completare il caricamento in più parti, come descritto più avanti in questa guida.

    Risultato del comando upload-part

Elenca le parti di un caricamento in più parti utilizzando il AWS CLI

Completa la procedura seguente per elencare le parti di un caricamento in più parti utilizzando l' AWS Command Line Interface (AWS CLI). Puoi eseguire tale operazione mediante il comando list-parts. Per ulteriori informazioni, consulta list-parts in Riferimento ai comandi della AWS CLI .

Completare questa procedura per ottenere i valori ETag relativi a tutte le parti caricate durante un caricamento in più parti. Questi valori saranno necessari per completare il caricamento in più parti, come descritto più avanti in questa guida. Tuttavia, se hai registrato tutti i valori ETag ottenuti dalla risposta dei caricamenti delle parti, puoi ignorare questa procedura e passare alla sezione Creazione di un file .json di caricamento in più parti in questa guida.

Nota

È necessario installare AWS CLI e configurarlo per Lightsail e Amazon S3 prima di continuare con questa procedura. Per ulteriori informazioni, consulta Configurare la funzionalità AWS CLI per l'utilizzo con Lightsail.

  1. Apri un prompt dei comandi o una finestra del terminale.

  2. Immettere il comando seguente per elencare le parti di un caricamento in più parti sul bucket.

    aws s3api list-parts --bucket BucketName --key ObjectKey --upload-id "UploadID"

    Nel comando sostituisci il seguente testo d'esempio con il proprio testo:

    • BucketName- Il nome del bucket per il quale desideri elencare le parti di un caricamento in più parti.

    • ObjectKey- La chiave oggetto del caricamento multiparte.

    • UploadID - L'ID di caricamento del caricamento in più parti che hai creato in precedenza in questa guida.

    Esempio:

    aws s3api list-parts --bucket amzn-s3-demo-bucket --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG"

    Il risultato dovrebbe essere analogo all'esempio seguente. Nella risposta sono elencati tutti i numeri delle parti e i valori ETag relativi alle parti caricate durante il caricamento in più parti. Copiare questi valori negli Appunti e procedere alla sezione Creazione di un file con estensione json con il caricamento in più parti in questa guida.

    Risultato del comando list-parts

Creazione di un file .json di caricamento in più parti

Completare la procedura seguente per creare un file .json di caricamento in più parti che definisca tutte le parti caricate e i valori ETag corrispondenti. Questa operazione è necessaria per completare il caricamento in più parti descritto più avanti in questa guida.

  1. Aprire un editor di testo e incollare la risposta dal comando list-parts richiesto nella sezione precedente di questa guida.

    Il risultato sarà simile al seguente esempio:

    JSONFile di caricamento in più parti numero 1
  2. Riformattare il file di testo come mostrato nell'esempio seguente:

    JSONFile di caricamento in più parti numero 2
  3. Salva il file di testo sul tuo computer come mpstructure.json e continua con la sezione Completa un caricamento in più parti utilizzando la AWS CLI sezione di questa guida.

Completa un caricamento in più parti utilizzando il AWS CLI

Completa la procedura seguente per completare un caricamento in più parti utilizzando l' AWS Command Line Interface (AWS CLI). Puoi eseguire tale operazione mediante il comando complete-multipart-upload. Per ulteriori informazioni, vedere complete-multipart-uploadnel AWS CLI Command Reference.

Nota

È necessario installare AWS CLI e configurarlo per Lightsail e Amazon S3 prima di continuare con questa procedura. Per ulteriori informazioni, consulta Configurare la funzionalità AWS CLI per l'utilizzo con Lightsail.

  1. Apri un prompt dei comandi o una finestra del terminale.

  2. Inserisci il comando seguente per caricare una parte nel bucket.

    aws s3api complete-multipart-upload --multipart-upload file://JSONFileName --bucket BucketName --key ObjectKey --upload-id "UploadID" --acl bucket-owner-full-control

    Nel comando sostituisci il seguente testo d'esempio con il proprio testo:

    • JSONFileName- Il nome del file.json creato in precedenza in questa guida (ad esempio,mpstructure.json).

    • BucketName- Il nome del bucket per il quale desideri completare un caricamento in più parti.

    • ObjectKey- La chiave oggetto del caricamento multiparte.

    • UploadID - L'ID di caricamento del caricamento in più parti che hai creato in precedenza in questa guida.

    aws s3api complete-multipart-upload --multipart-upload file://mpstructure.json --bucket amzn-s3-demo-bucket --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control

    La risposta dovrebbe essere analoga all'esempio seguente. a conferma del completamento del caricamento in più parti. L'oggetto è ora assemblato e disponibile all'interno del bucket.

    Risultato del comando complete-multipart-upload

Elenca i caricamenti in più parti per un bucket utilizzando AWS CLI

Completa la procedura seguente per elencare tutti i caricamenti in più parti per un bucket utilizzando l' AWS Command Line Interface (AWS CLI). Puoi eseguire tale operazione mediante il comando list-multipart-uploads. Per ulteriori informazioni, vedere list-multipart-uploadsnel Command Reference.AWS CLI

Nota

È necessario installare AWS CLI e configurarlo per Lightsail e Amazon S3 prima di continuare con questa procedura. Per ulteriori informazioni, consulta Configurare la funzionalità AWS CLI per l'utilizzo con Lightsail.

  1. Apri un prompt dei comandi o una finestra del terminale.

  2. Inserisci il comando seguente per caricare una parte nel bucket.

    aws s3api list-multipart-uploads --bucket BucketName

    Nel comando, sostituisci BucketNamecon il nome del bucket per il quale desideri elencare tutti i caricamenti multiparte.

    Esempio:

    aws s3api list-multipart-uploads --bucket amzn-s3-demo-bucket

    La risposta dovrebbe essere analoga all'esempio seguente.

    Risultato del comando list-multipart-uploads

Interrompi un caricamento in più parti utilizzando il AWS CLI

Completate la seguente procedura per interrompere un caricamento in più parti utilizzando AWS Command Line Interface ()AWS CLI. Se hai avviato un caricamento in più parti ma non desideri più continuare, puoi interrompere tale operazione mediante il comando abort-multipart-upload. Per ulteriori informazioni, vedete abort-multipart-uploadnella Guida ai AWS CLI comandi.

Nota

È necessario installare AWS CLI e configurarlo per Lightsail e Amazon S3 prima di continuare con questa procedura. Per ulteriori informazioni, consulta Configurare la funzionalità AWS CLI per l'utilizzo con Lightsail.

  1. Apri un prompt dei comandi o una finestra del terminale.

  2. Inserisci il comando seguente per caricare una parte nel bucket.

    aws s3api abort-multipart-upload --bucket BucketName --key ObjectKey --upload-id "UploadID" --acl bucket-owner-full-control

    Nel comando sostituisci il seguente testo d'esempio con il proprio testo:

    • BucketName- Il nome del bucket per il quale desideri interrompere un caricamento multiparte.

    • ObjectKey- La chiave oggetto del caricamento multiparte.

    • UploadID - L'ID di caricamento del caricamento in più parti che desideri interrompere.

    Esempio:

    aws s3api abort-multipart-upload --bucket amzn-s3-demo-bucket --key sailbot.mp4 --upload-id "R4QU.mO.exampleiHWiLOeNw7JtXX7OotRhTLsXXCzF21CZdYlfj5lfjtiMnpzVw2WPj.exampleBTmL_N_.42.DlHYOTsITFsX.tO3XOUTTAHiCxY5VR8jWRGdkVkUG" --acl bucket-owner-full-control

    Questo comando non restituisce una risposta. Puoi eseguire il comando list-multipart-uploads per confermare l'interruzione del caricamento in più parti.