Usar a AWS SDK for .NET - Amazon Simple Storage Service

Usar a AWS SDK for .NET

O AWS SDK for .NET fornece a API para as operações de buckets e objetos do Amazon S3. Para operações de objetos, além de prover a API para fazer upload de objetos em uma única operação, o SDK provê a API para fazer upload de grandes objetos em partes (consulte Carregar e copiar objetos usando multipart upload).

O AWS SDK for .NET oferece a opção de usar uma API de alto ou baixo nível.

API de baixo nível

As APIs de baixo nível correspondem às operações REST subjacentes do Amazon S3 incluindo operações de criação, atualização e exclusão que se aplicam a buckets e objetos. Quando você faz upload de objetos grandes usando a API de multipart upload de baixo nível (consulte Carregar e copiar objetos usando multipart upload), ela proporciona mais controle. Por exemplo, ela permite pausar e retomar multipart uploads, variar tamanhos de parte durante o upload ou começar uploads quando você não sabe o tamanho dos dados com antecedência. Se você não tiver essas necessidades, use a API de alto nível para fazer upload de objetos.

API de alto nível

Para fazer upload de objetos, o SDK fornece um nível superior de abstração fornecendo a classe TransferUtility. A API de alto nível é uma API mais simples, na qual em apenas algumas linhas de código, você pode fazer upload de arquivos e streams no Amazon S3. Você deve usar essa API para fazer upload dos dados a menos que você precise controlar o upload conforme descrito na seção API de baixo nível anterior.

Para dados menores, a API TransferUtility faz upload dos dados em uma única operação. No entanto, o TransferUtility alterna para o uso da API de multipart upload quando os dados atingem um determinado limite. Por padrão, ele usa vários threads para fazer upload das partes simultaneamente. Se houver falha no upload de uma parte, a API repetirá o upload da parte até três vezes. Contudo, essas são opções configuráveis.

nota

Quando você está usando um streaming na fonte dos dados, a classe TransferUtility não faz uploads simultâneos.

A organização da API .NET

Ao escrever aplicações do Amazon S3 usando o AWS SDK for .NET, você usa o AWSSDK.dll. Os seguintes namespaces neste assembly fornecem a API de multipart upload:

  • Amazon.S3.Transfer: fornece a API de alto nível para carregar os dados em partes.

    Inclui a classe TransferUtility que permite especificar um arquivo, um diretório ou um fluxo para upload dos dados. Também inclui as classes TransferUtilityUploadRequest e TransferUtilityUploadDirectoryRequest para definir configurações avançadas, como o número de threads simultâneos, o tamanho da parte, os metadados do objeto, a classe de armazenamento (STANDARD, REDUCED_REDUNDANCY) e a Access Control List (ACL – Lista de controle de acesso) do objeto.

  • Amazon.S3: fornece a implementação das APIs de baixo nível.

    Fornece métodos que correspondem à API REST multipart upload do Amazon S3 (consulte Uso dos REST API).

  • Amazon.S3.Model: fornece as classes da API de baixo nível para criar solicitações e respostas a processos. Por exemplo, fornece as classes InitiateMultipartUploadRequest e InitiateMultipartUploadResponse que você pode usar ao iniciar um multipart upload, e as classes UploadPartRequest e UploadPartResponse ao fazer o upload das partes.

  • Amazon.S3.Encryption: fornece o AmazonS3EncryptionClient.

  • Amazon.S3.Util: fornece várias classes de utilitários, como AmazonS3Util e BucketRegionDetector.

Para obter mais informações sobre a API do AWS SDK for .NET, consulte a Referência da API do AWS SDK for .NET Version 3.

Executar os exemplos de código do Amazon S3 .NET

Os exemplos de código .NET neste guia são compatíveis com o AWS SDK for .NET versão 3.0. Para obter informações sobre como configurar e executar exemplos de código, consulte Conceitos básicos do AWS SDK for .NET no Guia do desenvolvedor do AWS SDK for .NET.