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.