Este projeto é uma API desenvolvida utilizando o framework NestJs, conectada a um banco de dados PostgreSQL, executada em um ambiente Docker e usando o TypeORM para manipulação do banco de dados. A API também integra-se com o Cloudflare R2 para armazenamento e gerenciamento de imagens.
Certifique-se de ter o seguinte instalado em sua máquina local:
Copie o repositório para sua máquina local:
https://github.com/henrique77/image-storage-with-cloudflare-r2-and-nest.git
Crie um bucket no Cloudflare R2 para armazenar as imagens (doc) e Gere um token de autenticação no Cloudflare para ser usado na API (doc)
Crie um arquivo .env na raiz do projeto e adicione as variáveis de ambiente necessárias. Você pode usar .env.example como referência
Posteriormente a criação e inserção das informações necessárias no .env, execute:
docker compose up
Assim que os contêineres estiverem instalados e funcionando, podemos acessar o aplicativo NestJS visitando http://localhost:3000 e pgAdmin visitando http://localhost:5050 em nosso navegador. Faça login no pgAdmin usando o e-mail e a senha que especificamos no arquivo docker-compose.yml e Configurando o pgAdmin e o servidor PostgreSQL conforme as informações do arquivo docker-compose.yml
Agora a API pode ser testada usando o Postman ou outra ferramenta de sua preferência.
As rotas disponíveis são:
POST: http://localhost:3000/books
GET: http://localhost:3000/books
GET: http://localhost:3000/books/ID_BOOK
DELETE: http://localhost:3000/books/ID_BOOK
As imagens armazenadas no Cloudflare R2 podem ter sua url personalizada e definida como pública possibilitando o acesso em qualquer navegador.
Exemplo de imagem que foi salva usando essa aplicação e que pode ser acessada pelo link:
https://pub-80e90dad79d647409945f766b3c3cbf6.r2.dev/images/1706739045335-clean_architecture.jpg
- Author - Henrique Caires
Open for questions or suggestions