Utilizzo di AWS SDK for .NET - Amazon Simple Storage Service

Utilizzo di AWS SDK for .NET

La AWS SDK for .NET fornisce l'API per le operazioni su bucket e oggetti di Amazon S3. Per le operazioni con oggetti, oltre a fornire l'API per il caricamento di oggetti in un'unica operazione, l'SDK fornisce l'API per caricare in parti oggetti di grandi dimensioni (consulta Caricamento e copia di oggetti utilizzando il caricamento in più parti).

L'AWS SDK for .NET consente di scegliere se utilizzare un'API di alto o basso livello.

API di basso livello

Le API di basso livello corrispondono alle operazioni REST Amazon S3 sottostanti, come le operazioni di creazione, aggiornamento ed eliminazione valide per bucket e oggetti. Quando vengono caricati oggetti di grandi dimensioni utilizzando l'API di caricamento in più parti di basso livello (consulta Caricamento e copia di oggetti utilizzando il caricamento in più parti), sarà disponibile un maggiore controllo. Ad esempio, l'API consente di mettere in pausa e riprendere i caricamenti in più parti, variare le dimensioni in fase di caricamento o avviare il caricamento quando non si conosce anticipatamente la dimensione dei dati. In assenza di queste esigenze, utilizzare l'API di alto livello per il caricamento di oggetti.

API di alto livello

Per il caricamento di oggetti, l'SDK fornisce un elevato livello di astrazione tramite la classe TransferUtility. L'API di alto livello è più semplice e consente di caricare file e flussi su Amazon S3 con poche righe di codice. Se non è necessario controllare il caricamento (come descritto nella sezione precedente sull'API di basso livello), è consigliabile utilizzare questa API per caricare i dati.

Per dati di dimensioni minori, l'API TransferUtility procede al caricamento in un'unica operazione. Se invece i dati raggiungono una determinata soglia, TransferUtility passa a utilizzare l'API per il caricamento in più parti. Per default, questa utilizza più thread per caricare le parti simultaneamente. Se si verificano errori nel caricamento di una parte, l'API riprova a eseguirlo fino a tre volte. Si tratta comunque di opzioni configurabili.

Nota

Se l'origine dei dati è costituita da un flusso, la classe TransferUtility non esegue caricamenti simultanei.

Organizzazione dell'API per .NET

Quando si scrivono applicazioni Amazon S3 utilizzando la AWS SDK for .NET, si utilizza la AWSSDK.dll. I namespace seguenti in questo assembly forniscono l'API per il caricamento in più parti:

  • Amazon.S3.Transfer: fornisce l'API di alto livello per il caricamento dei dati in parti.

    Include la classe TransferUtility che consente di specificare un file, una directory o un flusso per il caricamento dei dati. Include anche le classi TransferUtilityUploadRequest e TransferUtilityUploadDirectoryRequest per la configurazione di impostazioni avanzate come il numero di thread simultanei, le dimensioni delle parti, i metadata degli oggetti, la classe di storage (STANDARD, REDUCED_REDUNDANCY) e la lista di controllo accessi (ACL) per l'oggetto.

  • Amazon.S3: fornisce l'implementazione per le API di basso livello.

    Rende disponibili metodi che corrispondono all'API REST di Amazon S3 per il caricamento in più parti (consulta Utilizzo di REST API).

  • Amazon.S3.Model: fornisce le classi dell'API di basso livello per creare richieste ed elaborare le risposte. Ad esempio, fornisce le classi InitiateMultipartUploadRequest e InitiateMultipartUploadResponse per l'avvio di un caricamento in più parti e le classi UploadPartRequest e UploadPartResponse per il caricamento delle parti.

  • Amazon.S3.Encryption: fornisce AmazonS3EncryptionClient.

  • Amazon.S3.Util: fornisce varie classi di utilità come AmazonS3Util e BucketRegionDetector.

Per ulteriori informazioni sull'API AWS SDK for .NET, consulta la Documentazione di riferimento dell'API di SDK AWS per .NET versione 3.

Esecuzione degli esempi di codice .NET di Amazon S3

Gli esempi di codice .NET in questa guida sono compatibili con AWS SDK for .NET versione 3.0. Per informazioni sulla configurazione e l'esecuzione degli esempi di codice, consulta Nozioni di base sull'SDK AWS per .NET nella Guida per gli sviluppatori di SDK AWS per .NET.