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à.
È possibile utilizzare il processo di caricamento multiparte per caricare un singolo oggetto come un insieme di parti. Ciascuna parte è una parte contigua dei dati dell'oggetto. È possibile caricare queste parti dell'oggetto in modo indipendente e in qualsiasi ordine. Se la trasmissione di una parte non riesce, è possibile ritrasmettere tale parte senza influire sulle altre. Una volta caricate tutte le parti dell'oggetto, Amazon S3 le assembla e crea l'oggetto. 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.
Il caricamento in più parti comporta i vantaggi riportati di seguito.
-
Throughput migliorato: puoi caricare le parti in parallelo per migliorare il throughput.
-
Ripristino rapido da qualsiasi problema di rete - Le dimensioni ridotte dei pezzi riducono al minimo l'impatto del riavvio di un caricamento fallito a causa di un errore di rete.
-
Messa in pausa e ripresa dei caricamenti dell'oggetto: puoi caricare le parti dell'oggetto nel corso del tempo. Dopo aver avviato un caricamento multiparte, non c'è una data di scadenza. È necessario completare o interrompere esplicitamente il caricamento multiparte.
-
Avvio di un caricamento prima di conoscere la dimensione finale dell'oggetto: puoi caricare un oggetto mentre viene creato.
Si consiglia di utilizzare i caricamenti multiparte nei seguenti modi:
-
Se si caricano oggetti di grandi dimensioni su una rete stabile ad alta larghezza di banda, utilizzare i caricamenti multiparte per massimizzare l'uso della larghezza di banda disponibile, caricando le parti dell'oggetto in parallelo per ottenere prestazioni multi-thread.
-
Se si sta caricando su una rete discontinua, utilizzare i caricamenti multiparte per aumentare la resilienza agli errori di rete evitando il riavvio del caricamento. Quando si utilizza il caricamento multiparte, è necessario riprovare a caricare solo le parti che si interrompono durante il caricamento. Non è necessario riavviare il caricamento dell'oggetto dall'inizio.
Quando si utilizzano i caricamenti multiparte per caricare oggetti nella classe di storage Amazon S3 Express One Zone in bucket di directory, il processo di caricamento multiparte è simile al processo di caricamento multiparte per caricare oggetti in bucket per uso generico. Tuttavia, non vi sono alcune differenze importanti.
Per ulteriori informazioni sull'uso dei caricamenti multiparte per caricare oggetti su S3 Express One Zone, consulta i seguenti argomenti.
Argomenti
Il processo di caricamento multiparte
Un caricamento multiparte è un processo in tre fasi:
-
L'utente avvia il caricamento.
-
Si caricano le parti dell'oggetto.
-
Dopo aver caricato tutte le parti, si completa il caricamento multiparte.
Una volta ricevuta la richiesta di caricamento multiparte completa, Amazon S3 costruisce l'oggetto dalle parti caricate e l'utente può quindi accedere all'oggetto come a qualsiasi altro oggetto nel bucket.
Avvio del caricamento in più parti
Quando invii una richiesta di avvio di un caricamento in più parti, Amazon S3 restituisce una risposta con un ID di caricamento, che è un identificativo univoco per il caricamento in più parti. È necessario includere questo ID di caricamento ogni volta che si caricano o si elencano le parti oppure ogni volta che si completa o si interrompe un caricamento.
Caricamento delle parti
Quando si carica una parte, oltre all'ID di caricamento è necessario specificare il numero della parte. Quando si utilizza un caricamento multiparte con S3 Express One Zone, i numeri di parte multiparte devono essere numeri di parte consecutivi. Se si tenta di completare una richiesta di caricamento multiparte con numeri di parte non consecutivi, viene generato un errore HTTP 400 Bad Request
(Invalid Part Order).
Un numero di parte identifica in modo univoco una parte e la sua posizione nell'oggetto che si sta caricando. Se si carica una nuova parte utilizzando lo stesso numero di parte di una parte caricata in precedenza, la parte caricata in precedenza viene sovrascritta.
Ogni volta che carichi una parte, Amazon S3 restituisce un'intestazione entity tag (ETag) nella sua risposta. Per ogni caricamento di una parte, devi registrare il numero e il valore della ETag parte. I ETag valori per tutti i caricamenti di parti di oggetti rimarranno gli stessi, ma a ciascuna parte verrà assegnato un numero di parte diverso. Occorre includere questi valori nella successiva richiesta di complemento del caricamento in più parti.
Amazon S3 esegue automaticamente la crittografa di tutti i nuovi oggetti caricati in un bucket S3. Quando si esegue un caricamento in più parti, se non si specificano le informazioni di crittografia nella richiesta, l'impostazione di crittografia delle parti caricate viene impostata sulla configurazione di crittografia predefinita del bucket di destinazione. La configurazione di crittografia predefinita di un bucket Amazon S3 è sempre abilitata ed è impostata come minimo sulla crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3). Per i bucket di directory, sono supportati SSE-S3 e la crittografia con AWS KMS chiavi lato server (SSE-KMS). Per ulteriori informazioni, consulta Protezione e crittografia dei dati.
Completamento del caricamento in più parti
Quando si completa un caricamento multiparte, Amazon S3 crea l'oggetto concatenando le parti in ordine crescente in base al numero di parte. 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 di entrambi i numeri di parte e i valori corrispondenti. ETag La risposta di Amazon S3 include un codice ETag che identifica in modo univoco i dati combinati dell'oggetto. Questo non ETag è un MD5 hash dei dati dell'oggetto.
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 S3 restituisce informazioni sulle parti per il caricamento in più parti specificato, fino a un massimo di 1000 parti. Se nel caricamento in più parti sono presenti più di 1000 parti, è necessario utilizzare la paginazione per recuperare tutte le parti.
L'elenco di parti restituite non include quelle che non hanno terminato il caricamento. L'operazione list multipart uploads (elenco dei caricamenti in più parti) consente di ottenere l'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. Utilizza l'elenco restituito solo per la verifica. Non utilizzarlo per inviare la richiesta complete multipart upload (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 S3.
Per ulteriori informazioni sulle inserzioni con caricamento multiparte, consulta ListPartsnel riferimento all'API di riferimento di Amazon Simple Storage Service.
Checksum con operazioni di caricamento in più parti
Quando carichi un oggetto su, puoi specificare un algoritmo di checksum per verificare l'integrità dell'oggetto. MD5 non è supportato per i bucket di directory. È possibile specificare uno dei seguenti algoritmi di controllo dell'integrità dei dati Secure Hash Algorithms (SHA) o Cyclic Redundancy Check (CRC):
-
CRC32
-
CRC32C
-
SHA-1
-
SHA-256
Puoi utilizzare l'API REST di Amazon S3 o AWS SDKs recuperare il valore del checksum per singole parti utilizzando o. GetObject
HeadObject
Se desideri recuperare i valori di checksum per singole parti di caricamenti in più parti ancora in corso, puoi utilizzare ListParts
.
Importante
Quando si utilizzano i precedenti algoritmi di checksum, i numeri di parte multiparte devono utilizzare numeri di parte consecutivi. Se si tenta di completare una richiesta di caricamento multiparte con numeri di parte non consecutivi, Amazon S3 genera un errore HTTP 400 Bad Request
(Invalid Part Order).
Per ulteriori informazioni sul funzionamento dei checksum con gli oggetti di caricamento multiparte, consulta Verifica dell'integrità degli oggetti in Amazon S3.
Operazioni simultanee di caricamento in più parti
In un ambiente di sviluppo distribuito, l'applicazione può avviare diversi aggiornamenti sullo stesso oggetto nello stesso momento. Ad esempio, l'applicazione potrebbe avviare diversi caricamenti multiparte utilizzando la stessa chiave oggetto. Per ciascuno di questi caricamenti, l'applicazione può quindi caricare le parti e inviare una richiesta di completamento del caricamento ad Amazon S3 per creare l'oggetto. Per S3 Express One Zone, l'ora di creazione dell'oggetto è la data di completamento del caricamento in più parti.
Importante
Il controllo delle versioni non è supportato per gli oggetti memorizzati nei bucket della directory.
Caricamenti multiparte e prezzi
Una volta avviato un caricamento in più parti, Amazon S3 mantiene tutte le parti finché il caricamento non viene completato o interrotto. Per tutta la durata del processo, all'utente vengono fatturati i costi per lo storage, la larghezza di banda e le richieste per questo tipo di caricamento e per le parti associate. Se si interrompe il caricamento multiparte, Amazon S3 elimina gli artefatti di caricamento e tutte le parti caricate e non vengono più addebitate. Non sono previsti costi di cancellazione anticipata per l'eliminazione di caricamenti multiparte incompleti, indipendentemente dalla classe di storage specificata. Per ulteriori informazioni sui prezzi, consulta Prezzi di Amazon S3
Importante
Se la richiesta completa di caricamento multiparte non viene inviata con successo, le parti dell'oggetto non vengono assemblate e non viene creato un oggetto. Ti viene addebitato tutto lo spazio di storage associato alle parti caricate. È importante completare il caricamento multiparte per creare l'oggetto o interrompere il caricamento multiparte per rimuovere le parti caricate.
Prima di eliminare un bucket di directory, è necessario completare o interrompere tutti i caricamenti multiparte in corso. I bucket di directory non supportano le configurazioni di S3 Lifecycle. Se necessario, è possibile elencare i caricamenti multiparte attivi, quindi interrompere i caricamenti e cancellare il bucket.
Operazioni e autorizzazioni dell'API per il caricamento multiparte
Per consentire l'accesso alle operazioni API di gestione degli oggetti su un bucket di directory, si concede l'autorizzazione s3express:CreateSession
in una policy di bucket o in una policy basata sull'identità AWS Identity and Access Management
(IAM).
Per eseguire le operazioni di caricamento in più parti, devi disporre delle autorizzazioni necessarie. È possibile utilizzare le policy dei bucket o le policy basate sull'identità IAM per concedere ai principali IAM le autorizzazioni per eseguire le operazioni. Nella tabella riportata di seguito sono elencate le autorizzazioni richieste per le varie operazioni di caricamento in più parti.
È possibile identificare l'iniziatore di un caricamento multiparte tramite l'elemento Initiator
. Se l'iniziatore è un Account AWS, questo elemento fornisce le stesse informazioni dell'elemento. Owner
Se è un utente IAM, questo elemento fornisce l'ARN e il nome visualizzato dell'utente.
Azione | Autorizzazioni richieste |
---|---|
Creazione di un caricamento in più parti |
Per creare il caricamento multiparte, è necessario essere autorizzati a eseguire l'azione |
Avvio di un caricamento multiparte |
Per avviare il caricamento multiparte, è necessario essere autorizzati a eseguire l'azione |
Caricamento di una parte |
Per caricare una parte, è necessario essere autorizzati a eseguire l'azione Affinché l'iniziatore possa caricare una parte, il proprietario del bucket deve consentire all'iniziatore di eseguire l'azione |
Caricamento di una parte (copia) |
Per caricare una parte, è necessario essere autorizzati a eseguire l'azione Perché l'iniziatore possa caricare una parte di un oggetto, il proprietario del bucket deve consentire all'iniziatore di eseguire l'operazione |
Completamento del caricamento in più parti |
Per completare un caricamento multiparte, è necessario essere autorizzati a eseguire l'azione Affinché l'iniziatore completi un caricamento multiparte, il proprietario del bucket deve consentire all'iniziatore di eseguire l'azione |
Interrompere un caricamento in più parti |
Per interrompere un caricamento multiparte, è necessario essere autorizzati a eseguire l'azione Affinché l'iniziatore possa interrompere un caricamento multiparte, è necessario che gli venga concesso l'accesso esplicito per eseguire l'azione |
Elenco di parti |
Per elencare le parti in un caricamento multiparte, è necessario essere autorizzati a eseguire l'azione |
Elenco di caricamenti in più parti in corso |
Per elencare i caricamenti multiparte in corso su un bucket, è necessario essere autorizzati a eseguire l'azione |
Supporto delle operazioni API per il caricamento multiparte
Le seguenti sezioni della Riferimento API di Amazon Simple Storage Service descrivono il funzionamento della REST API di Amazon S3 per il caricamento multiparte.
Esempi
Per utilizzare un caricamento multiparte per caricare un oggetto su S3 Express One Zone in un bucket di directory, consulta gli esempi seguenti.
Creazione di un caricamento in più parti
Nota
Per i bucket di directory, quando si esegue un'operazione CreateMultipartUpload
e un'operazione UploadPartCopy
, la crittografia predefinita del bucket deve utilizzare la configurazione di crittografia desiderata e le intestazioni di richiesta fornite nella richiesta CreateMultipartUpload
devono corrispondere alla configurazione di crittografia predefinita del bucket di destinazione.
Gli esempi seguenti mostrano come creare un caricamento multiparte.
Questo esempio mostra come creare un upload multiparte su un bucket di directory utilizzando il metodo AWS CLI. Questo comando avvia un caricamento multiparte nel bucket di directory bucket-base-name
-- zone-id
--x-s3 per l'oggetto. KEY_NAME
Per utilizzare il comando, sostituiscilo con le tue informazioniuser input placeholders
.
aws s3api create-multipart-upload --bucket
bucket-base-name
--zone-id
--x-s3 --keyKEY_NAME
Per ulteriori informazioni, consulta create-multipart-upload
Caricamento delle parti di un caricamento multiparte
Gli esempi seguenti mostrano come caricare parti di un caricamento multiparte.
Questo esempio mostra come suddividere un singolo oggetto in parti e quindi caricare tali parti in un bucket di directory, utilizzando il metodo AWS CLI. Per utilizzare il comando sostituiscili user input placeholders
con le tue informazioni.
aws s3api upload-part --bucket
bucket-base-name
--zone-id
--x-s3 --keyKEY_NAME
--part-number1
--bodyLOCAL_FILE_NAME
--upload-id "AS_mgt9RaQE9GEaifATue15dAAAAAAAAAAEMAAAAAAAAADQwNzI4MDU0MjUyMBYAAAAAAAAAAA0AAAAAAAAAAAH2AfYAAAAAAAAEBSD0WBKMAQAAAABneY9yBVsK89iFkvWdQhRCcXohE8RbYtc9QvBOG8tNpA
"
Per ulteriori informazioni, consulta upload-part
Completamento di un caricamento in più parti
Gli esempi seguenti mostrano come completare un caricamento multiparte.
Questo esempio mostra come completare un caricamento multiparte per un bucket di directory utilizzando il comando AWS CLI. Per utilizzare il comando sostituiscili user input placeholders
con le tue informazioni.
aws s3api complete-multipart-upload --bucket
bucket-base-name
--zone-id
--x-s3 --keyKEY_NAME
--upload-id "AS_mgt9RaQE9GEaifATue15dAAAAAAAAAAEMAAAAAAAAADQwNzI4MDU0MjUyMBYAAAAAAAAAAA0AAAAAAAAAAAH2AfYAAAAAAAAEBSD0WBKMAQAAAABneY9yBVsK89iFkvWdQhRCcXohE8RbYtc9QvBOG8tNpA
" --multipart-uploadfile://parts.json
Questo esempio prende una struttura JSON che descrive le parti del caricamento multiparte che devono essere riassemblate nel file completo. In questo esempio, il prefisso file://
è usato per caricare la struttura JSON da un file nella cartella locale chiamato parts
.
parts.json:
parts.json
{
"Parts": [
{
"ETag": "6b78c4a64dd641a58dac8d9258b88147",
"PartNumber": 1
}
]
}
Per ulteriori informazioni, consulta complete-multipart-upload
Interruzione di un caricamento in più parti
Gli esempi seguenti mostrano come interrompere un caricamento multiparte.
L'esempio seguente mostra come interrompere un caricamento multiparte utilizzando AWS CLI. Per utilizzare il comando sostituiscili user input placeholders
con le tue informazioni.
aws s3api abort-multipart-upload --bucket
bucket-base-name
--zone-id
--x-s3 --keyKEY_NAME
--upload-id "AS_mgt9RaQE9GEaifATue15dAAAAAAAAAAEMAAAAAAAAADQwNzI4MDU0MjUyMBYAAAAAAAAAAA0AAAAAAAAAAAH2AfYAAAAAAAAEAX5hFw-MAQAAAAB0OxUFeA7LTbWWFS8WYwhrxDxTIDN-pdEEq_agIHqsbg
"
Per ulteriori informazioni, consulta abort-multipart-upload
Creazione di un'operazione di copia di caricamento in più parti
Nota
Per crittografare le nuove copie di parti di oggetti in un bucket di directory con SSE-KMS, è necessario specificare SSE-KMS come configurazione di crittografia predefinita del bucket di directory con una chiave KMS (in particolare, una chiave gestita dal cliente). Chiave gestita da AWS (
aws/s3
) non è supportato. La configurazione di SSE-KMS può supportare solo 1 chiave gestita dal cliente per ogni bucket di directory per tutta la durata del bucket. Dopo aver specificato una chiave gestita dal cliente per SSE-KMS, non è possibile sovrascrivere la chiave gestita dal cliente per la configurazione SSE-KMS del bucket. Non è possibile specificare impostazioni di crittografia lato server per nuove copie di parti di oggetti con SSE-KMS nelle intestazioni della richiesta. UploadPartCopy Inoltre, le intestazioni della richiesta fornite nella richiestaCreateMultipartUpload
devono corrispondere alla configurazione di crittografia predefinita del bucket di destinazione.Le S3 Bucket Keys non sono supportate quando copi oggetti crittografati SSE-KMS da bucket generici a bucket di directory, da bucket di directory a bucket generici o tra bucket di directory, tramite UploadPartCopy. In questo caso, Amazon S3 effettua una chiamata AWS KMS ogni volta che viene effettuata una richiesta di copia per un oggetto crittografato con KMS.
Gli esempi seguenti mostrano come copiare gli oggetti da un bucket a un altro utilizzando un caricamento multiparte.
L'esempio seguente mostra come utilizzare un caricamento multiparte per copiare programmaticamente un oggetto da un bucket a un bucket della directory, utilizzando AWS CLI. Per utilizzare il comando sostituiscili user input placeholders
con le tue informazioni.
aws s3api upload-part-copy --bucket
bucket-base-name
--zone-id
--x-s3 --keyTARGET_KEY_NAME
--copy-sourceSOURCE_BUCKET_NAME/SOURCE_KEY_NAME
--part-number1
--upload-id "AS_mgt9RaQE9GEaifATue15dAAAAAAAAAAEMAAAAAAAAADQwNzI4MDU0MjUyMBYAAAAAAAAAAA0AAAAAAAAAAAH2AfYAAAAAAAAEBnJ4cxKMAQAAAABiNXpOFVZJ1tZcKWib9YKE1C565_hCkDJ_4AfCap2svg
"
Per ulteriori informazioni, consulta upload-part-copy
Elenco dei caricamenti multiparte in corso
Per elencare i caricamenti multiparte in corso in un bucket di directory, puoi usare il, o il AWS SDKs. AWS CLI
Gli esempi seguenti mostrano come elencare i caricamenti multiparte in corso (incompleti) utilizzando AWS CLI. Per utilizzare il comando sostituiscili user input placeholders
con le tue informazioni.
aws s3api list-multipart-uploads --bucket
bucket-base-name
--zone-id
--x-s3
Per ulteriori informazioni, consulta list-multipart-uploads
Elenco di parti di un caricamento multiparte
Gli esempi seguenti mostrano come elencare le parti di un caricamento multiparte in un bucket di directory.
Gli esempi seguenti mostrano come elencare le parti di un caricamento multiparte in un bucket di directory utilizzando AWS CLI. Per utilizzare il comando sostituiscili user input placeholders
con le tue informazioni.
aws s3api list-parts --bucket
--key
bucket-base-name
--zone-id
--x-s3KEY_NAME
--upload-id "AS_mgt9RaQE9GEaifATue15dAAAAAAAAAAEMAAAAAAAAADQwNzI4MDU0MjUyMBYAAAAAAAAAAA0AAAAAAAAAAAH2AfYAAAAAAAAEBSD0WBKMAQAAAABneY9yBVsK89iFkvWdQhRCcXohE8RbYtc9QvBOG8tNpA
"
Per ulteriori informazioni, consulta list-parts