Upload Part (PUT uploadID) - Amazon S3 Glacier

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

Se stai cercando soluzioni di archiviazione, ti consigliamo di utilizzare le classi di storage S3 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 S3 Glacier e lo storage dei dati a lungo termine con le classi di storage S3 Glacier nella Amazon S3 User Guide. Queste classi di storage utilizzano Amazon S3API, sono disponibili in tutte le regioni e possono essere gestite all'interno della console Amazon S3. Offrono funzionalità come Storage Cost Analysis, Storage Lens, funzionalità di crittografia opzionali avanzate e altro ancora.

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

Upload Part (PUT uploadID)

Descrizione

Questa operazione di caricamento in più parti consente di caricare una parte di un archivio. Puoi caricare parti di un archivio in qualsiasi ordine in quanto nella richiesta Upload Part specifichi l'intervallo di byte dell'archivio assemblato che verrà caricato in questa parte. Puoi anche caricare le parti in parallelo. In un caricamento in più parti è consentito caricare fino a 10.000 parti.

Per informazioni sul caricamento in più parti, consulta Caricamento in parti di archivi di grandi dimensioni (caricamento in più parti).

Amazon S3 Glacier (S3 Glacier) respinge la richiesta di caricamento di una parte se una qualsiasi delle seguenti condizioni è vera:

  • La struttura hash SHA256 non corrisponde: per garantire che i dati della parte non siano danneggiati nella trasmissione, devi calcolare una struttura hash SHA256 della parte e includerla nella richiesta. Dopo la ricezione dei dati della parte, S3 Glacier calcola anche una struttura hash SHA256. Se i due valori hash non corrispondono, l'operazione non riesce. Per informazioni sul calcolo di una struttura hash SHA256, consulta Calcolo di checksum.

  • L'hash lineare SHA256 non corrisponde: poiché è richiesto per l'autorizzazione, devi calcolare un hash lineare SHA256 dell'intero payload e includerlo nella richiesta. Per informazioni sul calcolo di un hash lineare SHA256, consulta Calcolo di checksum.

  • La dimensione di parte non corrisponde: la dimensione di ogni parte eccetto l'ultima deve corrispondere alla dimensione specificata nella richiesta Initiate Multipart Upload (POST multipart-uploads) corrispondente. La dimensione dell'ultima parte deve essere uguale o inferiore alla dimensione specificata.

    Nota

    Se carichi una parte la cui dimensione è inferiore alla dimensione specificata nella richiesta Initiate Multipart Upload e quella parte non è l'ultima parte, la richiesta Upload Part verrà eseguita senza problemi. Tuttavia, la richiesta Complete Multipart Upload successiva non riuscirà.

  • L'intervallo non è allineato: il valore dell'intervallo di byte nella richiesta non è allineato alla dimensione di parte specificata nella richiesta di avvio corrispondente. Ad esempio, se specifichi una dimensione di parte di 4194304 byte (4 MB), gli intervalli da 0 a 4194303 byte (4 MB – 1) e da 4194304 (4 MB) a 8388607 (8 MB – 1) sono intervalli di parte validi. Tuttavia, se imposti un valore di intervallo da 2 MB a 6 MB, l'intervallo non è allineato alla dimensione di parte e il caricamento non riuscirà.

Questa operazione è idempotente. Se carichi la stessa parte più volte, i dati inclusi nella richiesta più recente sovrascrivono i dati caricati precedentemente.

Richieste

Devi inviare questa richiesta PUT HTTP all'URI dell'ID di caricamento restituito dalla richiesta Initiate Multipart Upload. S3 Glacier utilizza l'ID di caricamento per associare i caricamenti delle parti a un determinato caricamento in più parti. La richiesta deve includere una struttura hash SHA256 dei dati della parte (intestazione x-amz-SHA256-tree-hash), un hash lineare SHA256 dell'intero payload (intestazione x-amz-content-sha256), l'intervallo di byte (intestazione Content-Range) e la lunghezza della parte in byte ( intestazione Content-Length).

Sintassi

PUT /AccountId/vaults/VaultName/multipart-uploads/uploadID HTTP/1.1 Host: glacier.Region.amazonaws.com Date: Date Authorization: SignatureValue Content-Range: ContentRange Content-Length: PayloadSize Content-Type: application/octet-stream x-amz-sha256-tree-hash: Checksum of the part x-amz-content-sha256: Checksum of the entire payload x-amz-glacier-version: 2012-06-01

Nota

Il valore AccountId è l'ID dell'Account AWS dell'account proprietario del vault. Puoi specificare l'ID dell'Account AWS o eventualmente un "-" (trattino), nel qual caso Amazon S3 Glacier utilizza l'ID dell'Account AWS associato alle credenziali utilizzate per firmare la richiesta. Se utilizzi un ID account, non includere alcun trattino ("-") nell'ID.

Parametri della richiesta

Questa operazione non utilizza parametri richiesta.

Intestazioni di richiesta

Questa operazione utilizza le seguenti intestazioni di richiesta, oltre alle intestazioni di richiesta comuni a tutte le operazioni. Per ulteriori informazioni sulle intestazioni richiesta comuni, consulta Intestazioni di richiesta comuni.

Nome Descrizione Obbligatorio
Content-Length

Identifica la lunghezza della parte in byte.

Tipo: string

Impostazione predefinita: nessuna

Vincoli: nessuno

No
Content-Range

Identifica l'intervallo di byte nell'archivio assemblato che verrà caricato in questa parte. S3 Glacier utilizza queste informazioni per assemblare l'archivio nella sequenza corretta. Il formato di questa intestazione segue la specifica RFC 2616. Un esempio è Content-Range:bytes 0-4194303/*.

Tipo: string

Impostazione predefinita: nessuna

Vincoli: l'intervallo non può essere maggiore della dimensione di parte specificata all'avvio del caricamento in più parti.

x-amz-content-sha256

Il checksum SHA256 (un hash lineare) del payload caricato. Non si tratta dello stesso valore che specifichi nell'intestazione x-amz-sha256-tree-hash.

Tipo: string

Impostazione predefinita: nessuna

Vincoli: nessuno

x-amz-sha256-tree-hash

Specifica una struttura hash SHA256 dei dati caricati. Per informazioni sul calcolo di una struttura hash SHA256, consulta Calcolo di checksum.

Tipo: string

Impostazione predefinita: nessuna

Vincoli: nessuno

Corpo della richiesta

Il corpo della richiesta contiene i dati da caricare.

Risposte

Dopo il caricamento riuscito di una parte, S3 Glacier restituisce una risposta 204 No Content.

Sintassi

HTTP/1.1 204 No Content x-amzn-RequestId: x-amzn-RequestId Date: Date x-amz-sha256-tree-hash: ChecksumComputedByAmazonGlacier

Intestazioni di risposta

Una risposta corretta include le seguenti intestazioni di risposta, oltre alle intestazioni di risposta comuni a tutte le operazioni. Per informazioni sulle intestazioni di risposta comuni, consulta Intestazioni di risposta comuni.

Nome Descrizione
x-amz-sha256-tree-hash

La struttura hash SHA256 che S3 Glacier ha calcolato per la parte caricata.

Tipo: string

Corpo della risposta

Questa operazione non restituisce un corpo della risposta.

Esempio

La richiesta seguente carica una parte di 4 MB. La richiesta imposta l'intervallo di byte di modo che sia la prima parte nell'archivio.

Richiesta di esempio

L'esempio invia una richiesta HTTP PUT per caricare una parte di 4 MB. La richiesta è inviata all'URI dell'ID di caricamento restituito dalla richiesta Initiate Multipart Upload. L'intestazione Content-Range identifica la parte come la prima parte di dati di 4 MB dell'archivio.

PUT /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Range:bytes 0-4194303/* x-amz-sha256-tree-hash:c06f7cd4baacb087002a99a5f48bf953 x-amz-content-sha256:726e392cb4d09924dbad1cc0ba3b00c3643d03d14cb4b823e2f041cff612a628 Content-Length: 4194304 Authorization: Authorization=AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-glacier-version,Signature=16b9a9e220a37e32f2e7be196b4ebb87120ca7974038210199ac5982e792cace

Per caricare la parte successiva, la procedura è la stessa. Tuttavia, devi calcolare una nuova struttura hash SHA256 della parte che stai caricando e specificare un nuovo intervallo di byte per indicare la posizione della parte nell'assemblaggio finale. La richiesta seguente carica un'altra parte utilizzando lo stesso ID di caricamento. La richiesta specifica i 4 MB successivi dell'archivio dopo la richiesta precedente e una dimensione di parte di 4 MB.

PUT /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Range:bytes 4194304-8388607/* Content-Length: 4194304 x-amz-sha256-tree-hash:f10e02544d651e2c3ce90a4307427493 x-amz-content-sha256:726e392cb4d09924dbad1cc0ba3b00c3643d03d14cb4b823e2f041cff612a628 x-amz-glacier-version: 2012-06-01 Authorization: Authorization=AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20120525/us-west-2/glacier/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-glacier-version, Signature=16b9a9e220a37e32f2e7be196b4ebb87120ca7974038210199ac5982e792cace

Le parti possono essere caricate in qualsiasi ordine; S3 Glacier utilizza la specifica di intervallo di ogni parte per determinare l'ordine in cui assemblarle.

Risposta di esempio

HTTP/1.1 204 No Content x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q x-amz-sha256-tree-hash: c06f7cd4baacb087002a99a5f48bf953 Date: Wed, 10 Feb 2017 12:00:00 GMT