

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

# Utilizzo `S3CrtClient` per le operazioni di Amazon S3
<a name="examples-s3-crt"></a>

La `S3CrtClient` classe è disponibile nella versione 1.9 di AWS SDK per C\$1\$1 e migliora la velocità di caricamento e download di file di dati di grandi dimensioni da e verso Amazon S3. Per ulteriori informazioni sui miglioramenti di questa versione, consulta Improving [Amazon S3 Throughput with v1.9 AWS SDK per C\$1\$1](https://github.com/aws/aws-sdk-cpp/wiki/Improving-S3-Throughput-with-AWS-SDK-for-CPP-v1.9)

`S3CrtClient`È implementato nella parte superiore delle librerie [AWS Common Runtime (CRT)](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html).

**Nota**  
Per evitare di ricevere addebiti per caricamenti incompleti o parziali, ti consigliamo di abilitare la regola del [AbortIncompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpu-abort-incomplete-mpu-lifecycle-config.html)ciclo di vita sui tuoi bucket Amazon S3.  
Questa regola impone ad Amazon S3 di interrompere i caricamenti multiparte che non vengono completati entro un determinato numero di giorni dall'avvio. Quando viene superato il limite di tempo impostato, Amazon S3 interrompe il caricamento e quindi elimina i dati di caricamento incompleti.   
Per ulteriori informazioni, consulta [Impostazione della configurazione del ciclo di vita su un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html) nella Guida per l'utente di Amazon S3.

## Prerequisiti
<a name="codeExamplePrereq"></a>

Prima di iniziare, ti consigliamo di leggere la [Guida introduttiva](getting-started.md) all'uso di. AWS SDK per C\$1\$1

Scarica il codice di esempio e crea la soluzione come descritto in[Guida introduttiva agli esempi di codice](getting-started-code-examples.md). 

Per eseguire gli esempi, il profilo utente utilizzato dal codice per effettuare le richieste deve disporre delle autorizzazioni appropriate AWS (per il servizio e l'azione). Per ulteriori informazioni, vedere [Fornitura di AWS credenziali](credentials.md).

## Caricamento e download di oggetti utilizzando `S3CrtClient`
<a name="stream"></a>

Questo esempio dimostra come utilizzare il [https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-s3-crt/html/class_aws_1_1_s3_crt_1_1_s3_crt_client.html](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-s3-crt/html/class_aws_1_1_s3_crt_1_1_s3_crt_client.html). L'esempio crea un bucket, carica un oggetto, scarica l'oggetto, quindi elimina il file e il bucket. Un'operazione PUT si trasforma in un caricamento in più parti. Un'operazione GET si trasforma in più richieste GET «a intervalli». Per ulteriori informazioni sui caricamenti in più parti, consulta [Caricamento e copia di oggetti utilizzando il caricamento in più parti nella](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html) Amazon S3 User Guide. 

In questo esempio, `ny.json` il file di dati fornito viene caricato come caricamento in più parti. Ciò può essere confermato visualizzando i log di debug dopo una corretta esecuzione del programma.

Se il caricamento fallisce, `AbortMultipartUpload` viene emesso un file nella libreria CRT sottostante per ripulire le parti già caricate. Tuttavia, non tutti i guasti possono essere gestiti internamente (ad esempio lo scollegamento di un cavo di rete). Ti consigliamo di creare una regola del ciclo di vita sul tuo bucket Amazon S3 per garantire che i dati caricati parzialmente non rimangano sul tuo account (i dati caricati parzialmente sono comunque fatturabili). Per scoprire come configurare una regola del ciclo di vita, consulta [Discovering and Deleting Incomplete Multipart Uploads to Lower Amazon](https://aws.amazon.com/blogs/aws-cost-management/discovering-and-deleting-incomplete-multipart-uploads-to-lower-amazon-s3-costs/ ) S3 Costs. 

**Utilizzo del log di debug per esplorare i dettagli dei caricamenti in più parti**

1. Nota che ci sono "TODO" commenti con istruzioni per l'aggiornamento del codice. `main()`

   1. Per`file_name`: dal link fornito nel commento al codice`ny.json`, scarica un file di dati di esempio o usa un file di dati di grandi dimensioni tutto tuo.

   1. Per`region`: aggiorna la `region` variabile, usando l'enum, alla variabile Regione AWS del tuo account. Per trovare la regione del tuo account, accedi a e individua la regione nell'angolo in alto a destra. Console di gestione AWS

1. Crea l'esempio.

1. Copia il file specificato dalla variabile nella `file_name` cartella eseguibile ed esegui l'`s3-crt-demo`eseguibile.

1. Nella cartella eseguibile, trova il `.log` file più recente.

1. Apri il file di registro, seleziona **cerca** e inserisci**partNumber**.

1. Il registro contiene voci simili alle seguenti, in cui `uploadId` sono specificati gli `partNumber` e per ogni parte del file caricato:

    `PUT /my-object partNumber=1&uploadId=gsk8vDbmnlA5EseDo._LDEgq22Qmt0SeuszYxMsZ9ABt503VqDIFOP8xzZI1P0zp.ToS.qo5kK16HNWogZF3KpRo.Dc7QnLZIK0BTmzCWwWoPax4T21hvP6nPdz9591F content-length:8388608 host:my-bucketasdfasdf.s3.us-east-2.amazonaws.com x-amz-content-sha256:UNSIGNED-PAYLOAD`

    and 

    `PUT /my-object partNumber=2&uploadId=gsk8vDbmnlA5EseDo._LDEgq22Qmt0SeuszYxMsZ9ABt503VqDIFOP8xzZI1P0zp.ToS.qo5kK16HNWogZF3KpRo.Dc7QnLZIK0BTmzCWwWoPax4T21hvP6nPdz9591F content-length:8388608 host:my-bucketasdfasdf.s3.us-east-2.amazonaws.com x-amz-content-sha256:UNSIGNED-PAYLOAD `

Vedi l'[esempio completo](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3-crt/s3-crt-demo.cpp) su GitHub.