-
-
Save luismendes070/132bf5e1159d34212deadbc802b57216 to your computer and use it in GitHub Desktop.
npm install @aws-sdk/client-s3 |
O AWS Free Tier oferece um nível gratuito para o Amazon S3, mas com algumas limitações. Atualmente, o plano gratuito inclui:
✅ 5 GB de armazenamento na classe S3 Standard
✅ 20.000 solicitações GET
✅ 2.000 solicitações PUT, COPY, POST ou LIST
✅ 15 GB de transferência de saída gratuita para a internet por mês (somando todos os serviços da AWS)
Esse benefício é válido por 12 meses após a criação da conta. Depois disso, as cobranças seguem a tabela de preços padrão do S3.
Se precisar testar localmente sem custo, você pode usar o LocalStack, que simula os serviços da AWS, incluindo o S3. Isso pode ser útil se você estiver desenvolvendo com Java/Kotlin e Spring Boot. 🚀
No AWS Free Tier, as solicitações PATCH não estão explicitamente listadas nas métricas gratuitas do S3, porque o S3 não suporta PATCH diretamente.
No S3, para modificar um objeto, você geralmente precisa:
- Baixar (GET) o objeto, modificar localmente e reenvia-lo com um PUT.
- Usar Multipart Upload para alterar partes do objeto sem precisar reescrevê-lo inteiro.
Se você estiver lidando com APIs e precisar de PATCH, talvez esteja pensando em algo como o Amazon API Gateway + Lambda + S3, onde o API Gateway pode processar solicitações PATCH antes de atualizar um objeto no S3.
Se estiver testando algo específico, me conta mais detalhes para ver a melhor alternativa! 🚀
`import { S3Client, GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3";
import { Readable } from "stream";
const s3 = new S3Client({ region: "us-east-1" });
const bucketName = "meu-bucket";
const objectKey = "dados.json";
async function streamToString(stream: Readable): Promise {
return new Promise((resolve, reject) => {
const chunks: Uint8Array[] = [];
stream.on("data", (chunk) => chunks.push(chunk));
stream.on("end", () => resolve(Buffer.concat(chunks).toString("utf-8")));
stream.on("error", reject);
});
}
async function patchS3Object() {
try {
// 1️⃣ Baixar o JSON do S3
const getCommand = new GetObjectCommand({ Bucket: bucketName, Key: objectKey });
const { Body } = await s3.send(getCommand);
} catch (error) {
console.error("Erro ao modificar o objeto:", error);
}
}
patchS3Object();
`