Como criar, listar e excluir buckets S3 no .NET usando o AWS SDK?

Rodrigo A.
5 min readJan 25, 2023

--

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

--

--