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à.
Verifica dell'integrità degli oggetti
Amazon S3 utilizza i valori di checksum per verificare l'integrità dei dati da caricare o scaricare da Amazon S3. Inoltre, puoi richiedere che venga calcolato un altro valore di checksum per qualsiasi oggetto da archiviare in Amazon S3. Puoi selezionare uno dei diversi algoritmi di checksum per utilizzarlo durante il caricamento o la copia dei dati. Amazon S3 usa questo algoritmo per calcolare un valore di checksum aggiuntivo e archiviarlo come parte dei metadati dell'oggetto. Per ulteriori informazioni su come utilizzare checksum aggiuntivi per verificare l'integrità dei dati, consulta Tutorial: Verifica dell'integrità dei dati in Amazon S3 con checksum aggiuntivi
Quando carichi un oggetto, puoi facoltativamente includere un checksum precalcolato come parte della richiesta. Amazon S3 confronta il checksum fornito con il checksum calcolato utilizzando l'algoritmo specificato. Se i due valori non corrispondono, Amazon S3 genera un errore.
Utilizzo di algoritmi di checksum supportati
Amazon S3 ti offre la possibilità di scegliere l'algoritmo di checksum da usare per convalidare i tuoi dati durante il caricamento o il download. È possibile selezionare uno dei seguenti algoritmi di controllo dell'integrità dei dati Secure Hash Algorithms (SHA) o Cyclic Redundancy Check (): CRC
-
CRC-32
-
CRC-32 °C
-
SHA-1
-
SHA-256
Quando carichi un oggetto, puoi specificare l'algoritmo da utilizzare:
-
Quando si utilizza il AWS Management Console, si seleziona l'algoritmo di checksum che si desidera utilizzare. Puoi inoltre facoltativamente specificare il valore di checksum dell'oggetto. Quando Amazon S3 riceve l'oggetto, calcola il checksum utilizzando l'algoritmo specificato. Se i due valori di checksum non corrispondono, Amazon S3 genera un errore.
-
Quando usi un SDK, puoi impostare il valore del
ChecksumAlgorithm
parametro sull'algoritmo che desideri che Amazon S3 utilizzi per il calcolo del checksum. Amazon S3 calcola automaticamente il valore del checksum. -
Quando usi il REST API, non usi il parametro.
x-amz-sdk-checksum-algorithm
Usi invece una delle intestazioni specifiche dell'algoritmo (ad esempio,x-amz-checksum-crc32
).
Per ulteriori informazioni sul caricamento degli oggetti, consulta Caricamento degli oggetti.
Per applicare uno di questi valori di checksum agli oggetti già caricati su Amazon S3, puoi copiare l'oggetto. Quando copi un oggetto puoi specificare se vuoi utilizzare l'algoritmo di checksum esistente o utilizzarne uno nuovo. Puoi specificare un algoritmo di checksum quando si utilizza qualsiasi meccanismo supportato per la copia di oggetti, incluso S3 Batch Operations (Operazioni di batch S3). Per ulteriori informazioni sulle operazioni in batch, consulta Esecuzione di operazioni sugli oggetti in blocco con Batch Operations.
Importante
Se utilizzi un caricamento in più parti con checksum aggiuntivi, i numeri delle parti in più parti devono essere consecutivi. Quando utilizzi checksum aggiuntivi, se tenti di completare una richiesta di caricamento in più parti con numeri di parte non consecutivi, Amazon S3 genera un errore. HTTP 500 Internal Server Error
Dopo aver caricato gli oggetti puoi ottenere il valore di checksum e confrontarlo con un valore di checksum precalcolato o precedentemente archiviato calcolato utilizzando lo stesso algoritmo.
Per ulteriori informazioni sull'utilizzo della console e sulla specifica degli algoritmi di checksum da utilizzare durante il caricamento degli oggetti, consultare Caricamento degli oggetti e Tutorial: Verifica dell'integrità dei dati in Amazon S3 con checksum aggiuntivi
L'esempio seguente mostra come è possibile utilizzare AWS SDKs per caricare un file di grandi dimensioni con caricamento in più parti, scaricare un file di grandi dimensioni e convalidare un file di caricamento in più parti, il tutto utilizzando SHA -256 per la convalida dei file.
È possibile inviare REST richieste per caricare un oggetto con un valore di checksum con PutObjectcui verificare l'integrità dei dati. È inoltre possibile recuperare il valore di checksum per gli oggetti utilizzando o. GetObjectHeadObject
È possibile inviare una richiesta PUT
per caricare un oggetto di un massimo di 5 GB in una singola operazione. Per ulteriori informazioni, consulta PutObject
nella Documentazione di riferimento per i comandi di AWS CLI . Puoi utilizzare anche get-object
e head-object
per recuperare il checksum di un oggetto già caricato per verificare l'integrità dei dati.
Per informazioni, consulta Amazon S3 CLI FAQ nella Guida per l'AWS Command Line Interface utente.
Utilizzo dei contenuti: MD5 durante il caricamento di oggetti
Un altro modo per verificare l'integrità dell'oggetto dopo il caricamento consiste nel fornire un MD5 riepilogo dell'oggetto al momento del caricamento. Se si calcola il MD5 digest dell'oggetto, è possibile fornire al digest il PUT
comando utilizzando l'intestazione. Content-MD5
Dopo aver caricato l'oggetto, Amazon S3 calcola MD5 il digest dell'oggetto e lo confronta con il valore che hai fornito. La richiesta ha esito positivo solo se i due digest corrispondono.
Non è necessario fornire un MD5 digest, ma puoi utilizzarlo per verificare l'integrità dell'oggetto come parte del processo di caricamento.
Utilizzo di Content- MD5 and the ETag per verificare gli oggetti caricati
Il tag di entità (ETag) per un oggetto rappresenta una versione specifica di quell'oggetto. Tieni presente che il ETag riflesso modifica solo il contenuto di un oggetto, non i relativi metadati. Se cambiano solo i metadati di un oggetto, ETag rimangono gli stessi.
A seconda dell'oggetto, l'ETagoggetto potrebbe essere un MD5 riassunto dei dati dell'oggetto:
-
Se un oggetto viene creato dall'
CopyObject
operazionePutObject
PostObject
, o o tramite la AWS Management Console, e tale oggetto è anche in testo semplice o crittografato mediante crittografia lato server con chiavi gestite di Amazon S3 (SSE-S3), quell'oggetto dispone di un ETag riepilogo dei relativi dati oggetto. MD5 -
Se un oggetto viene creato dall'
CopyObject
operazionePutObject
PostObject
, o o tramite la AWS Management Console, e tale oggetto è crittografato mediante crittografia lato server con chiavi fornite dal cliente (SSE-C) o crittografia lato server con AWS Key Management Service (AWS KMS) chiavi (SSE-KMS), quell'oggetto dispone di un oggetto ETag che non è un MD5 riepilogo dei relativi dati oggetto. -
Se un oggetto viene creato dal processo di caricamento multiparte o dall'
UploadPartCopy
operazione, quello dell'oggetto non ETag è un MD5 digest, indipendentemente dal metodo di crittografia. Se un oggetto è più grande di 16 MB, AWS Management Console carica o copia quell'oggetto come caricamento in più parti e quindi ETag non è un digest. MD5
Per gli oggetti in cui ETag è il riassunto dell'oggetto, potete confrontare il ETag valore dell'oggetto con un Content-MD5
digest calcolato o precedentemente memorizzato. Content-MD5
Utilizzo dei checksum finali
Quando carichi oggetti su Amazon S3, puoi fornire un checksum precalcolato per l'oggetto o utilizzarne AWS SDK uno per creare automaticamente checksum finali per tuo conto. Se decidi di utilizzare un checksum finale, Amazon S3 genera automaticamente il checksum utilizzando l'algoritmo specificato e lo utilizza per convalidare l'integrità dell'oggetto durante il caricamento.
Per creare un checksum finale quando usi un, compila il parametro con il tuo algoritmo preferito AWS SDK. ChecksumAlgorithm
SDKUtilizza tale algoritmo per calcolare il checksum dell'oggetto (o delle parti dell'oggetto) e lo aggiunge automaticamente alla fine della richiesta di caricamento. Questo comportamento ti consente di risparmiare tempo perché Amazon S3 esegue sia la verifica che il caricamento dei tuoi dati in un unico passaggio.
Importante
Se utilizzi S3 Object Lambda, tutte le richieste a S3 Object Lambda vengono firmate tramite s3-object-lambda
anziché s3
. Questo comportamento influisce sulla firma dei valori di checksum finali. Per ulteriori informazioni su S3 Object Lambda, consulta Trasformazione di oggetti con S3 Object Lambda.
Utilizzo di checksum a livello di parte per caricamenti in più parti
È possibile caricare gli oggetti in Amazon S3 come un singolo oggetto o tramite il processo di caricamento in più parti. Gli oggetti di dimensioni superiori a 16 MB che vengono caricati tramite la console, vengono caricati automaticamente utilizzando i caricamenti in più parti. Per ulteriori informazioni sui caricamenti in più parti, consulta la sezione Caricamento e copia di oggetti utilizzando il caricamento in più parti.
Quando un oggetto viene caricato come caricamento in più parti, il comando ETag for the object non è un MD5 riassunto dell'intero oggetto. Amazon S3 calcola il MD5 digest di ogni singola parte man mano che viene caricata. I MD5 digest vengono utilizzati per determinare l'oggetto finaleETag. Amazon S3 concatena i byte per i digest e quindi calcola il MD5 digest di questi valori concatenati. MD5 Il passaggio finale per la creazione di ETag è quando Amazon S3 aggiunge un trattino con il numero totale di parti alla fine.
Ad esempio, considera un oggetto caricato con un caricamento in più parti con un di. ETag C9A5A6878D97B48CC965C1E41859F034-14
In questo caso, il riepilogo di tutti i MD5 digest C9A5A6878D97B48CC965C1E41859F034
è concatenato insieme. La -14
indica che ci sono 14 parti associate al caricamento in più parti di questo oggetto.
Se hai abilitato ulteriori valori di checksum per il tuo oggetto in più parti, Amazon S3 calcola il checksum di ogni singola parte utilizzando l'algoritmo di checksum specificato. Il checksum per l'oggetto completato viene calcolato nello stesso modo in cui Amazon S3 calcola MD5 il digest per il caricamento multiparte. È possibile utilizzare questo checksum per verificare l'integrità dell'oggetto.
Per recuperare informazioni sull'oggetto, incluso il numero di parti che compongono l'intero oggetto, puoi utilizzare l'operazione. GetObjectAttributes Con i checksum aggiuntivi, puoi recuperare anche le informazioni di ogni singola parte, incluso il valore di checksum di ciascuna parte.
Per i caricamenti completati, potete ottenere il checksum di una singola parte utilizzando le HeadObjectoperazioni GetObjecto e specificando un numero di parte o un intervallo di byte allineato a una singola parte. Se desideri recuperare i valori del checksum per le singole parti dei caricamenti in più parti ancora in corso, puoi utilizzare. ListParts
A causa del modo in cui Amazon S3 calcola il checksum per oggetti caricati in più parti, il valore del checksum per l'oggetto potrebbe cambiare se lo copi. Se utilizzi una chiamata SDK o la REST API e che chiami CopyObject, Amazon S3 copia qualsiasi oggetto fino ai limiti di dimensione dell'CopyObject
APIoperazione. Amazon S3 esegue questa copia come un'unica operazione, indipendentemente dal fatto che l'oggetto sia stato caricato in una singola richiesta o come parte di un caricamento in più parti. Con il comando copy, il checksum dell'oggetto è un checksum diretto dell'oggetto completo. Se l'oggetto è stato originariamente caricato utilizzando un caricamento in più parti, il valore del checksum cambia anche se i dati non sono stati modificati.
Nota
Gli oggetti che superano i limiti di dimensione dell'CopyObject
APIoperazione devono utilizzare comandi di copia multiparte.
Importante
Quando esegui alcune operazioni utilizzando AWS Management Console, Amazon S3 utilizza un caricamento in più parti se l'oggetto ha una dimensione superiore a 16 MB. In questo caso, il checksum non è un checksum diretto dell'oggetto completo, ma piuttosto un calcolo basato sui valori di checksum di ogni singola parte.
Ad esempio, considera un oggetto di 100 MB che hai caricato come caricamento diretto in una singola parte utilizzando il. REST API Il checksum in questo caso è un checksum dell'intero oggetto. Se successivamente utilizzi la console per rinominare l'oggetto, copiarlo, modificare la classe di storage o i metadati, Amazon S3 utilizza la funzionalità di caricamento in più parti per aggiornare l'oggetto. Di conseguenza, Amazon S3 crea un nuovo valore di checksum per l'oggetto calcolato in base ai valori di checksum delle singole parti.
L'elenco precedente di operazioni da console non è un elenco completo di tutte le possibili azioni che puoi intraprendere per far sì AWS Management Console che Amazon S3 aggiorni l'oggetto utilizzando la funzionalità di caricamento multiparte. Tieni presente che ogni volta che usi la console per agire su oggetti di dimensioni superiori a 16 MB, il valore del checksum potrebbe non essere il checksum dell'intero oggetto.