Uso do S3 Transfer Utility - AWS Mobile SDK

O AWS Mobile SDK for Xamarin agora está incluído no AWS SDK for .NET. Este guia faz referência à versão arquivada do Mobile SDK para Xamarin.

Uso do S3 Transfer Utility

O S3 Transfer Utility facilita o envio e o download de arquivos para o S3 a partir do aplicativo Xamarin.

Inicializar o TransferUtility

Crie um cliente S3, transmitindo seu objeto de credenciais da AWS e, em seguida, transmita o cliente S3 para o utilitário de transferência, da seguinte forma:

var s3Client = new AmazonS3Client(credentials,region); var transferUtility = new TransferUtility(s3Client);

(opcional) Configurar o TransferUtility

Há três propriedades opcionais que você pode configurar:

  • ConcurrentServiceRequests – Determina quantos threads ativos ou o número de solicitações da web assíncronas e simultâneas que serão usados para fazer o upload/download do arquivo. O valor padrão é 10.

  • MinSizeBeforePartUpload – Obtém ou define o tamanho mínimo da parte para fazer o upload das partes em bytes. O padrão é 16 MB. A redução do tamanho mínimo da parte produz multipart uploads para serem divididos em um número maior de partes menores. Definir esse valor muito baixo tem um efeito negativo nas velocidades de transferência, produzindo latência extra e comunicação de rede para cada parte.

  • NumberOfUploadThreads – Obtém ou define o número threads em execução. Essa propriedade determina o número de threads ativos que serão usados para fazer o upload do arquivo. O valor padrão é 10 threads.

Para configurar o cliente S3 TransferUtility, crie um objeto de configuração, defina suas propriedades e transmita o objeto para o seu construtor TransferUtility da seguinte forma:

var config = new TransferUtilityConfig(); config.ConcurrentServiceRequests = 10; config.MinSizeBeforePartUpload=16*1024*1024; config.NumberOfUploadThreads=10; var s3Client = new AmazonS3Client(credentials); var utility = new TransferUtility(s3Client,config);

Fazer download de um arquivo

Para fazer o download de um arquivo do S3, chame Download no objeto Transfer Utility, transmitindo os seguintes parâmetros:

  • file: o nome da string do arquivo que você deseja fazer download

  • bucketName: o nome do bucket do S3 do qual você deseja fazer download do arquivo

  • key: uma string representa o nome do objeto do S3 (neste caso, um arquivo) para download

transferUtility.Download( Path.Combine(Environment.SpecialFolder.ApplicationData,"file"), "bucketName", "key" );

Fazer upload de um arquivo

Para fazer upload de um arquivo para o S3, chame Upload no objeto Transfer Utility, transmitindo os seguintes parâmetros:

  • file: o nome da string do arquivo que você deseja fazer upload

  • bucketName: o nome da string do bucket do S3 para armazenar o arquivo

transferUtility.Upload( Path.Combine(Environment.SpecialFolder.ApplicationData,"file"), "bucketName" );

O código acima pressupõe que há um arquivo no diretório Environment.SpecialFolder.ApplicationData. Os uploads usam automaticamente a funcionalidade multipart upload do S3 em arquivos grandes para aumentar a taxa de transferência.