Como criar, listar e excluir buckets S3 no .NET usando o AWS SDK?
Olá pessoal, todos bem?
Esse é o meu primeiro artigo que estou publicando, não liguem se conter algum erro rsrs, e se encontrarem podem relatar que irei com maior prazer ajustar.
Bom tentarei mostrar neste artigo como fazer o famoso “CRUD” com buckets S3, isso mesmo CRUD! Creio que todo desenvolvedor passou ou passará pelos famosos crud´s da vida né? E aqui não foi diferente comigo, e de início não me dei conta que estava se tratando de um CRUD, porém quando organizei as ideias para postar o artigo, me veio à mente: “nossa é um CRUD” rsrs.
Antes de cair diretamente no código, tentarei explicar de forma leve toda a configuração de ambiente do nosso projeto, sei que a configuração de ambiente não é tão legal quanto sair codificando, mas no nosso ramo faz parte esta configuração de ambiente, e se eu esquecer de algum detalhe podem me procurar que tentarei buscar tal informação com maior prazer.
Irei partir do princípio que já tenha uma conta da AWS criada que é bem facinho de fazer.
A primeira etapa da configuração do ambiente é instalar o Pacote AWSToolKit para o Visual Studio: https://aws.amazon.com/pt/visualstudio
A segunda etapa é entrar na interface web da AWS e pesquisar por IAM (Identity and Access Management), para criar um Grupo de usuários, pois todas as políticas são aplicadas diretamente nos grupos por boas práticas e organização.
A terceira etapa é criar uma política de acesso para AWS S3 (Simple Storage Service), para isso basta ir em Políticas / Criar Polítcas, escolher o serviço S3 e marcar o nível de acesso como Lista, Leitura e Gravação avançar e escolher um nome para política.
A quarta etapa é associar a política criada anteriormente ao grupo de usuários na aba Permissões, anexando a política criada anteriormente.
Com o Grupo de usuário criado e política associada, iremos finalmente criar um usuário, um ponto muito importante é não esquecer de guardar a key e o secret para ser usado futuramente para acessar os recursos da AWS através do CLI ou API´s SDK, no momento da criação do usuário será solicitado o grupo de usuários, basta escolher o grupo criado anteriormente para fazer a configuração da política de acesso ao S3.
A quinta etapa é abrir o terminal de prompt de comando e digitar o seguinte comando para configurar o profile e região onde serão criados os recursos na AWS, será solicitado a key , secret, região do usuário criado anteriormente, no nosso exemplo iremos optar pela região SAEast1 (São Paulo)
Comando: aws configure — profile “perfil”
Por último abra o Visual Studio e abra a janela AWS Explorer e configure o mesmo Profile para ter acesso visual aos recursos da AWS
Ufa pessoal, se tudo deu certo finalmente iremos conseguir implementar o nosso projeto rsrs
Para criar, listar e excluir buckets S3 no .NET usando o AWS SDK, criei um projeto do tipo console com os seguintes pacotes Nuget instalados:
Criei uma classe utilizando os seguintes namespaces:
Na classe criada implementei seguintes métodos:
Criando um novo bucket:
Explicação do código:
Na linha 24 é criado uma instancia do S3Client passando os seguintes parâmetros: key, secret e a região da AWS.
Na linha 26 é criado uma solicitação para criar um bucket
Na linha 31 é enviado uma requisição para criar o bucket
Listando todos os buckets:
Na linha 81 é criado uma requisição para listar todos os buckets
Na linha 83 é enviado uma requisição para listar os buckts
Na linha 85 se obtem a lista de buckets
Deletando um bucket:
Na linha 136 é criado uma requisição para deletar o bucket
Na linha 141 é enviado uma requisição para deletar o bucket
Com todos os métodos implementados, irei fazer o consumo através do método Main da classe Program conforme imagem abaixo:
Executando o programa por fim veremos a criação, listagem e deleção do bucket
Bom pessoal, sei que foi uma longa jornada até aqui, espero que eu tenha conseguido transmitir algum conhecimento em AWS e .NET, como uma brincadeira segui um pouco mais neste projeto onde eu criei uma aplicação Desktop para demonstrar o CRUD de Bucket S3 rsrs, o projeto não para por aqui, tenho em mente em evoluir ele como forma de aprendizagem e tentarei postar aqui as próximas funcionalidades deste projeto, irei deixar aqui um print para vocês verem e também fomentar pra sempre estarem testando/criando qualquer tipo de projeto, nem que seja o mais simples, sempre haverá algo novo pra aprender, foi que aconteceu comigo neste simples projeto, agradeço e até mais galera.
Ah irei deixar o link do projeto no github para consulta. Fui!
Repositório: https://github.com/rodrigosabreu/aws-dotnet