Como usar o AWS SDK para .NET - Amazon Simple Storage Service

Como usar o AWS SDK para .NET

O AWS SDK para .NET fornece a API para as operações de bucket e de objeto 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 Fazer upload de objetos usando a API de multipart upload).

O AWS SDK para .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 subjacentes do Amazon S3 REST 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 Fazer upload de objetos usando a API de 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 fluxos 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 aplicativos do Amazon S3 usando o AWS SDK para .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 multipart upload do Amazon S3 REST (consulte Usar a API REST para multipart upload).

  • 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 AmazonS3EncryptionClient.

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

Para obter mais informações sobre a API do AWS SDK para .NET, consulte Versão 3 da Referência API de AWS SDK para .NET.

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

Os exemplos de código .NET neste guia são compatíveis com o AWS SDK para .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 para .NET no AWS SDK for .NET Developer Guide.