Dados
Storage S3
Buckets compatíveis com S3 por projeto, com chave só do bucket.
Criar um bucket
Na página do projeto, em Storage, dê um nome (3 a 30 caracteres) e clique em Criar bucket. Com a opção marcada, estas variáveis vão para Production:
| Variável | O que é |
|---|---|
S3_ENDPOINT | endereço da API S3 |
S3_REGION | região a informar ao SDK |
S3_BUCKET | o nome real do bucket (o que você digitou, com um sufixo) |
S3_ACCESS_KEY_ID e S3_SECRET_ACCESS_KEY | chave que só vale para este bucket |
S3_FORCE_PATH_STYLE | true: use endereço no estilo /bucket/arquivo |
S3_PUBLIC_URL | endereço público, só se o bucket for de leitura pública |
Usar na aplicação
import { PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
const s3 = new S3Client({
endpoint: process.env.S3_ENDPOINT,
region: process.env.S3_REGION,
forcePathStyle: true,
credentials: {
accessKeyId: process.env.S3_ACCESS_KEY_ID!,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY!,
},
});
await s3.send(
new PutObjectCommand({ Bucket: process.env.S3_BUCKET, Key: "fotos/1.jpg", Body: arquivo }),
);Envio direto do navegador funciona com URL assinada (o bucket aceita CORS de qualquer origem para GET, HEAD, PUT, POST e DELETE).
Leitura pública
Todo bucket nasce privado. Abrir leitura pública (Dono ou Administrador) deixa qualquer pessoa ler os arquivos pelo endereço público; depois, clique em Gravar S3_ de novo para a variável S3_PUBLIC_URL entrar. Fechar leitura pública desfaz. Domínio próprio para bucket público ainda não existe.
Arquivos, chaves e cotas
Arquivosabre o navegador do bucket: enviar, criar pasta, baixar e apagar.Mostrar chavesmostra as credenciais (fica no histórico).Trocar chaveinvalida a antiga na hora.- Cota por bucket: Free 1 bucket de 1 GB, Pro 5 de 10 GB, Scale 20 de 50 GB. Envio que passaria da cota é recusado. O uso é medido a cada hora.
Se a página disser que o storage ainda não foi ligado, o recurso ainda não está disponível na plataforma.