

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

# Protezioni per l'integrità dei dati per Amazon S3
<a name="feature-dataintegrity"></a>

**Nota**  
Per informazioni sulla comprensione del layout delle pagine delle impostazioni o sull'interpretazione della tabella **Support by AWS SDK e strumenti** che segue, consulta. [Informazioni sulle pagine delle impostazioni di questa guida](settings-reference.md#settingsPages)

Da qualche tempo, AWS gli SDK supportano i controlli di integrità dei dati durante il caricamento o il download di dati da Amazon Simple Storage Service. In precedenza, questi controlli erano facoltativi. Ora, abbiamo abilitato questi controlli per impostazione predefinita, utilizzando CRC-based algoritmi come CRC32 o CRC64NVME. Sebbene ogni SDK o strumento abbia un algoritmo predefinito, puoi scegliere un algoritmo diverso. Se lo desideri, puoi anche continuare a fornire manualmente un checksum precalcolato per i caricamenti. Un comportamento coerente tra caricamenti, caricamenti multiparte, download e modalità di crittografia semplifica i controlli di integrità lato client. 

 Utilizza le versioni più recenti dei nostri AWS SDK e calcola AWS CLI automaticamente un [checksum basato sul controllo di ridondanza ciclica (CRC)](https://en.wikipedia.org/wiki/Cyclic_redundancy_check) per ogni caricamento e lo invia ad Amazon S3. Amazon S3 calcola in modo indipendente un checksum sul lato server e lo convalida rispetto al valore fornito prima di archiviare in modo duraturo l'oggetto e il relativo checksum nei metadati dell'oggetto. Memorizzando il checksum nei metadati insieme all'oggetto, quando l'oggetto viene scaricato, lo stesso checksum può essere restituito automaticamente e utilizzato anche per convalidare i download. È inoltre possibile verificare il checksum memorizzato nei metadati dell'oggetto in qualsiasi momento. 

 *Per ulteriori informazioni sulle operazioni di checksum, sui caricamenti in più parti o sull'elenco degli algoritmi di checksum supportati, consulta [Checking object integrity in Amazon S3 nella Amazon Simple](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) Storage Service User Guide.* 

 **Caricamenti in più parti:**

Amazon S3 fornisce inoltre agli sviluppatori checksum completi di oggetti coerenti per caricamenti singoli e multiparte. 

Quando si caricano file in più parti, gli SDK calcolano i checksum per ogni parte. Amazon S3 utilizza questi checksum per verificare l'integrità di ogni parte tramite l'API. `UploadPart` Inoltre, Amazon S3 convalida la dimensione e il checksum dell'intero file quando chiami l'API. `CompleteMultipartUpload` 

Se il tuo SDK dispone di un Amazon S3 Transfer Manager per facilitare i caricamenti in più parti, i checksum vengono convalidati per le parti utilizzando SDK-specific l'algoritmo predefinito riportato nella tabella. [Support di AWS SDK e strumenti](#dataintegrity-sdk-compat) Puoi attivare un checksum completo dell'oggetto impostando l'impostazione `checksum_type` o scegliendo di utilizzare l'algoritmo CRC64NVME. `FULL_OBJECT`

**Se utilizzi una versione precedente di SDK o: AWS CLI** 

Se l'applicazione utilizza una versione precedente a dicembre 2024 dell'SDK o dello strumento, Amazon S3 calcola comunque un checksum CRC64NVME sui nuovi oggetti e lo archivia nei metadati degli oggetti per riferimenti futuri. Successivamente puoi confrontare il CRC memorizzato con un CRC calcolato da te e verificare che la trasmissione di rete sia stata corretta. Inoltre, potete comunque estendere manualmente la protezione dell'integrità fornendo checksum precalcolati con le vostre [`UploadPart`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)richieste [`PutObject`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)or, che è la tecnica standard per risolvere questo problema nelle versioni precedenti. 



Configura questa funzionalità utilizzando quanto segue:

**`request_checksum_calculation`- impostazione dei AWS `config` file condivisi`AWS_REQUEST_CHECKSUM_CALCULATION`- variabile d'ambiente`aws.requestChecksumCalculation`- Proprietà del sistema JVM: solo Java/Kotlin **  
Per impostazione predefinita, gli utenti scelgono di calcolare il checksum di una richiesta quando inviano una richiesta. L'utente può scegliere uno qualsiasi degli [algoritmi di checksum disponibili](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html) come parte della creazione della richiesta. Altrimenti, viene utilizzato un algoritmo SDK-specific predefinito. Consulta la [Support di AWS SDK e strumenti](#dataintegrity-sdk-compat) tabella per l'algoritmo predefinito per ogni SDK o strumento.  
**Valore predefinito**: `WHEN_SUPPORTED`  
**Valori validi**:  
+ **`WHEN_SUPPORTED`**— La convalida del checksum viene eseguita su tutti i payload della richiesta se supportata dal funzionamento dell'API, come i trasferimenti di dati su Amazon S3.
+ **`WHEN_REQUIRED`**— La convalida del checksum viene eseguita solo quando richiesta dal funzionamento dell'API.

**`response_checksum_validation`- impostazione condivisa AWS `config` dei file`AWS_RESPONSE_CHECKSUM_VALIDATION`- variabile d'ambiente`aws.responseChecksumValidation`- Proprietà del sistema JVM: solo Java/Kotlin **  
Per impostazione predefinita, gli utenti accettano la convalida del checksum della risposta quando inviano una richiesta. Viene calcolato un checksum per il payload della risposta e confrontato con l'intestazione della risposta checksum. Se la convalida del checksum fallisce, viene segnalato un errore all'utente durante la lettura del payload.  
 L'intestazione della risposta checksum indica anche l'algoritmo per il checksum. Il client Amazon S3 tenta di convalidare i checksum di risposta per tutte le operazioni API Amazon S3 che supportano i checksum. Tuttavia, se l'SDK non ha implementato l'algoritmo di checksum specificato, questa convalida viene ignorata.   
**Valore predefinito**: `WHEN_SUPPORTED`  
**Valori validi**:  
+ **`WHEN_SUPPORTED`**— La convalida del checksum viene eseguita su tutti i payload di risposta se supportata dal funzionamento dell'API, come i trasferimenti di dati verso Amazon S3.
+ **`WHEN_REQUIRED`**— La convalida del checksum viene eseguita solo se supportata dall'operazione API e il chiamante ha abilitato esplicitamente il checksum per l'operazione. Ad esempio, quando viene chiamata l'`GetObject`API Amazon S3 e il `ChecksumMode` parametro è impostato su enabled.

## Support di AWS SDK e strumenti
<a name="dataintegrity-sdk-compat"></a>

I seguenti SDK supportano le funzionalità e le impostazioni descritte in questo argomento. Vengono annotate eventuali eccezioni parziali. Tutte le impostazioni delle proprietà del sistema JVM sono supportate solo da AWS SDK per Java and the. AWS SDK per Kotlin 

**Nota**  
Nella tabella seguente, «CRT» si riferisce al progetto [AWS Librerie Common Runtime (CRT)](common-runtime.md) e potrebbe richiedere l'aggiunta di una dipendenza aggiuntiva.


| SDK | Supportata | Algoritmo di checksum predefinito | Algoritmi di checksum supportati | Note o ulteriori informazioni | 
| --- | --- | --- | --- | --- | 
| [AWS CLI  ](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | Sì | CRC64NVME | CRC64NVME, CRC32, CRC32C, SHA1, SHA256, XXHash3, xxHash64, XXHash128, SHA512 | Per la AWS CLI v1, l'algoritmo predefinito e gli algoritmi supportati saranno identici a Python (Boto3). | 
| [SDK per C\+\+](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | Sì | CRC64NVME | CRC64NVME, CRC32, CRC32C, SHA1, SHA256, XXHash3, xxHash64, XXHash128, SHA512  |  | 
| [SDK per Go V2 (1.x)](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | Sì | CRC32 | CRC64NVME, CRC32, CRC32C, SHA1, SHA256 |  | 
| [SDK per Go 1.x (V1)](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | No |  |  |  | 
| [SDK per Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | Sì | CRC32 | CRC32, CRC32C, SHA1, SHA256<br />**Solo tramite CRT: CRC64NVME**, xxHash3, xxHash64, xxHash128, SHA512 |  | 
| [SDK per Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | No |  |  |  | 
| [SDK per 3.x JavaScript ](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | Sì | CRC32 | CRC32, CRC32C, SHA1, SHA256 |  | 
| [SDK JavaScript per 2.x](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | No |  |  |  | 
| [SDK per Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | Sì | CRC32 | CRC32, CRC32C, SHA1, SHA256 |  | 
| [SDK per.NET 4.x](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | Sì | CRC32 | CRC32, CRC32C, SHA1, SHA256, SHA512 |  | 
| [SDK per.NET 3.x](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | Sì | CRC32 | CRC32, CRC32C, SHA1, SHA256, SHA512 |  | 
| [SDK per PHP 3.x](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | Sì | CRC32 | CRC32, SHA1, SHA256<br />**Solo tramite CRT: CRC32C** | awscrtè necessaria un'estensione per utilizzare CRC32C. | 
| [SDK per Python (Boto3)](https://docs.aws.amazon.com/boto3/latest/guide/quickstart.html) | Sì | CRC32 | CRC32, SHA1, SHA256<br />**Solo tramite CRT: CRC32C**, CRC64NVME, xxHash3, xxHash64, xxHash128, SHA512 |  | 
| [SDK per Ruby 3.x](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | Sì | CRC32 | CRC32, SHA1, SHA256<br />**Solo tramite CRT: CRC64NVME, CRC32C** |  | 
| [SDK per Rust](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | Sì | CRC32 | CRC64NVME, CRC32, CRC32C, SHA1, SHA256 |  | 
| [SDK per Swift](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | Sì | CRC32 | CRC64NVME, CRC32, CRC32C, SHA1, SHA256 | Dipendenza CRT richiesta per tutti gli algoritmi. | 
| [Strumenti per V5 PowerShell ](https://docs.aws.amazon.com/powershell/latest/userguide/) | Sì | CRC32 | CRC32, CRC32C, SHA1, SHA256, XXHash3, SHA512 |  | 
| [Strumenti PowerShell per V4](https://docs.aws.amazon.com/powershell/v4/userguide/) | Sì | CRC32 | CRC32, CRC32C, SHA1, SHA256, SHA512 |  | 