Vamos criar e configurar uma conta AWS para usar o Amazon S3. Criamos um bucket, fazemos upload de imagens e ajustamos as permissões para acesso público. Integramos o Next.js para exibir imagens diretamente do S3.
Agora, vamos explorar o processo de configuração de um bucket no S3 para hospedar imagens. Nosso objetivo é preparar o ambiente para que as imagens sejam acessíveis publicamente em nossa aplicação Next.js.
Antes de começar, você precisa ter uma conta na Amazon AWS. Se ainda não possui uma, crie uma conta gratuita. Com sua conta criada, você terá acesso ao AWS Management Console, o dashboard que reúne todas as ferramentas e produtos da AWS.
codante-mp-foto-upload
como exemplo.Por padrão, os buckets no S3 são privados. Para tornar as imagens públicas, precisamos configurar as permissões.
codante-mp-foto-upload
.Para garantir a leitura pública das imagens, vamos definir uma política de acesso no bucket.
{"Version": "2008-10-17","Statement": [{"Sid": "AllowPublicRead","Effect": "Allow","Principal": "*","Action": "s3:GetObject","Resource": "arn:aws:s3:::codante-mp-foto-upload/*"}]}
O Next.js utiliza um servidor próprio por trás do componente next/image
para otimizar as imagens. É necessário registrar os domínios permitidos para evitar abusos.
next.config.mjs
na raiz do seu projeto Next.js.const nextConfig = {images: {remotePatterns: [{hostname: 'codante-mp-foto-upload.s3.sa-east-1.amazonaws.com',},],},};export default nextConfig;
Pronto! O bucket no S3 está configurado para hospedar imagens publicamente e seu projeto Next.js já pode acessá-las de forma segura e otimizada.
Em breve, veremos como enviar imagens para o S3 através da nossa aplicação Next.js e como exibi-las de forma dinâmica!