Utilizzo dell'API di caricamento multiparte per lo storage degli oggetti
Scopri come eseguire caricamenti multiparte per un bucket utilizzando l'API.
Un caricamento multiparte eseguito mediante l'API è costituito dai passi riportati di seguito.
-
Creazione delle parti dell'oggetto
-
Avvio di un caricamento
-
Caricamento delle parti dell'oggetto
-
Commit (o annullamento) del caricamento
Prima di utilizzare l'API di caricamento multiparte, è necessario creare le parti da caricare. Lo storage degli oggetti fornisce operazioni API per i passi rimanenti. Il servizio fornisce anche operazioni API per elencare i caricamenti multiparte in corso, elencare le parti dell'oggetto in un caricamento multiparte in corso e uscire dai caricamenti multiparte in corso avviati tramite l'API. In questa sezione viene fornita una panoramica generale dei passi dell'API, ma è possibile consultare il riferimento API per informazioni specifiche sulle chiamate API supportate.
Creazione delle parti dell'oggetto
Con il caricamento multiparte, puoi suddividere l'oggetto che desideri caricare in singole parti. Le singole parti possono essere grandi come 50 GiB. Decidere il numero di particolare che si desidera utilizzare per ogni parte. I numeri di parte possono variare da 1 a 10.000. Non è necessario assegnare numeri contigui, ma lo storage degli oggetti crea l'oggetto ordinando i numeri parte in ordine crescente.
Avvio di un caricamento
Al termine della creazione delle parti oggetto, avviare un caricamento multiparte effettuando una chiamata all'API REST CreateMultipartUpload. Fornire il nome dell'oggetto e i relativi metadati. Lo storage degli oggetti risponde con un ID caricamento univoco che è necessario includere in qualsiasi richiesta correlata a questo caricamento multiparte. Lo storage degli oggetti contrassegna inoltre il caricamento come attivo. Il caricamento rimane attivo fino a quando non viene eseguito esplicitamente il commit o l'interruzione.
Caricamento delle parti dell'oggetto
Effettuare una richiesta UploadPart per ogni caricamento di parte dell'oggetto. Nei parametri della richiesta, fornire lo spazio di nomi dello storage degli oggetti, il nome del bucket, l'ID caricamento e il numero parte. Nel corpo della richiesta, includere la parte oggetto. Le parti dell'oggetto possono essere caricate in parallelo e in qualsiasi ordine. Quando esegui il commit del caricamento, lo storage degli oggetti utilizza i numeri di parte per definire la sequenza delle parti degli oggetti. I numeri di particolare non devono essere contigui. Se vengono caricate più parti dell'oggetto utilizzando lo stesso ID caricamento e lo stesso numero parte, l'operazione CommitMultipartUpload esegue il commit dell'ultima parte caricata. Vedere Istruzioni speciali per PUT di storage degli oggetti per i requisiti di firma della richiesta.
Lo storage degli oggetti restituisce un valore ETag (tag di entità) per ogni parte caricata. Quando si esegue il commit del caricamento, sono necessari sia il numero di particolare che il valore ETag corrispondente per ogni parte.
In caso di problemi di rete, è possibile riavviare un caricamento non riuscito per una singola parte. Non è necessario riavviare l'intero caricamento. Se per qualche motivo non puoi eseguire un caricamento tutto in una volta, il caricamento multiparte ti consente di continuare a caricare le parti secondo i tuoi ritmi. Mentre un caricamento multiparte è ancora attivo, puoi continuare ad aggiungere parti purché il numero totale sia inferiore a 10.000.
Puoi controllare un caricamento multiparte attivo elencando tutte le parti caricate. Non è possibile elencare le informazioni per una singola parte oggetto in un caricamento multiparte attivo. L'operazione ListMultipartUploadParts richiede lo spazio di nomi dello storage degli oggetti, il nome del bucket e l'ID caricamento. Lo storage degli oggetti risponde con informazioni sulle parti associate all'ID caricamento specificato. Le informazioni sulle parti includono il numero parte, il valore ETag, il checksum MD5 e la dimensione parte (in byte).
Allo stesso modo, se hai più caricamenti multiparte che si verificano contemporaneamente, puoi vedere quali caricamenti sono in corso. Effettuare una chiamata API ListMultipartUploads per elencare i caricamenti multiparte attivi nello spazio di nomi e nel bucket dello storage degli oggetti specificati.
Gli addebiti per lo storage delle parti iniziano ad accumularsi quando si caricano i dati.
Commit del caricamento
Dopo aver caricato tutte le parti dell'oggetto, eseguire il commit del caricamento. Utilizzare i parametri di richiesta CommitMultipartUpload per specificare lo spazio di nomi dello storage degli oggetti, il nome del bucket e l'ID caricamento. Includere il numero di particolare e il valore ETag corrispondente per ogni parte del corpo della richiesta. Quando esegui il commit del caricamento, lo storage degli oggetti crea l'oggetto dalle parti che lo compongono. L'oggetto viene memorizzato nel bucket e nello spazio di nomi dello storage degli oggetti specificati. Puoi trattarlo come faresti con qualsiasi altro oggetto. La garbage collection rilascia lo spazio di memorizzazione occupato da qualsiasi numero di parte caricato, ma non incluso nella richiesta CommitMultipartUpload.
Impossibile elencare o recuperare parti da un caricamento completato. Impossibile aggiungere o rimuovere parti dal caricamento completato. Se lo desideri, puoi sostituire l'oggetto avviando un nuovo caricamento.
Annullamento del caricamento
Se si decide di annullare un caricamento multiparte anziché eseguirne il commit, attendere il completamento dei caricamenti delle parti in corso, quindi utilizzare l'operazione AbortMultipartUpload. Se annulli un caricamento mentre i caricamenti delle parti sono comunque in corso, lo storage degli oggetti esegue il cleanup delle parti completate e in corso. Impossibile riutilizzare gli ID caricamento da caricamenti multiparte annullati.