image

Olá pessoal, hoje eu vou falar e mostrar como fazer um upload de documento, arquivo ou imagem para dentro do Amazon AWS S3. S3 é o serviço da Amazon AWS responsável por armazenamento de arquivos, imagens e tudo mais... Depois você pode recuperar pelo endereço gerado a imagem, arquivo ou qualquer tipo de file adicionado.

Já utilizo esse serviço deles a mais de ano e o preço é bem pequeno perto dos outros existentes no mercado. Hoje eu pego menos de 10 dólares por mês. Pense em uma pessoa que já sofreu em armazenar arquivo em servidores ruins, perder por falta de backup deles, perda de arquivo e muito mais.

Depois que eu resolvi armazenar em um servidor mais consistente, nunca mais tive problemas com perda de arquivo, mp3, site, imagem e outros tipos.

Hoje eu vou mostrar que com o C# pode ser feito upload de arquivo ou imagem para dentro do servidor Amazon AWS S3.

O primeiro passo é fazer download do plugin da Amazon. O segundo ponto é criar uma pasta, chamada de BucketName, lá dentro para receber os arquivos que deseja enviar.

Sobre o componente utilizado, basta procurar no NuGet o nome AWSSDK que vai aparecer os dois abaixo, basta instalar o AWSSDK. Basta instalar e importar na classe.

Imagem 1.1 - Instalando o AWS SDK

Image

O próximo passo é importar dentro da classe a informação do SDK.

using Amazon.S3.Model;
using Amazon.S3.Transfer;

Código 1.1 - Importe da Amazon S3 AWS

Dentro do AWS é te dado duas chaves para ter acesso ao sistema deles. Acesse o site https://aws.amazon.com, faça um cadastro e pegue essa chave do serviço S3 por favor. Para fazer upload é necessário passar alguns dados para o servidor e quais são esses dados?

  • Chave de acesso (passado pela AWS)
  • Chave de segredo (passado pela AWS)
  • O InputStream (o stream do arquivo)
  • O BucketName (o nome da pasta)
  • A Key (o nome do arquivo)
  • StorageClass (Reduz a redudância do arquivo se for acessado muito tempo, mantém cache e tudo mais)
  • CannedACL (se o arquivo é publico ou não)

Todos esses dados são necessários para dar certo. Agora o código necessário para fazer o upload via web, desktop ou via serviço é bem simples. Em poucas linhas seus arquivos são enviados para os servidores da Amazon. Veja o código 1.2.

Código 1.2 - Código de transferência / upload.

TransferUtility fileTransferUtility = new TransferUtility(chave-de-acesso, chave-de-segredo);

var uploadRequest = new Amazon.S3.Transfer.TransferUtilityUploadRequest();
uploadRequest.InputStream = flUploadImagem.PostedFile.InputStream;
uploadRequest.BucketName = "nome-da-pasta";
uploadRequest.Key = filename;
uploadRequest.StorageClass = S3StorageClass.ReducedRedundancy;
uploadRequest.CannedACL = S3CannedACL.PublicRead;

fileTransferUtility.Upload(uploadRequest);

Espero que tenha gostado e qualquer dúvida por entrar em contato via site https://www.mauriciojunior.org.