42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
const { S3Client, PutBucketPolicyCommand } = require("@aws-sdk/client-s3");
|
|
|
|
const BUCKET_NAME = process.env.MINIO_BUCKET || "portal-transparencia";
|
|
|
|
const s3Client = new S3Client({
|
|
endpoint: `http://${process.env.MINIO_ENDPOINT || "localhost"}:${process.env.MINIO_PORT || 9000}`,
|
|
region: "us-east-1",
|
|
credentials: {
|
|
accessKeyId: process.env.MINIO_ACCESS_KEY || "admin",
|
|
secretAccessKey: process.env.MINIO_SECRET_KEY || "password123",
|
|
},
|
|
forcePathStyle: true,
|
|
});
|
|
|
|
const publicPolicy = {
|
|
Version: "2012-10-17",
|
|
Statement: [
|
|
{
|
|
Effect: "Allow",
|
|
Principal: "*",
|
|
Action: ["s3:GetObject"],
|
|
Resource: [`arn:aws:s3:::${BUCKET_NAME}/*`],
|
|
},
|
|
],
|
|
};
|
|
|
|
async function main() {
|
|
try {
|
|
await s3Client.send(
|
|
new PutBucketPolicyCommand({
|
|
Bucket: BUCKET_NAME,
|
|
Policy: JSON.stringify(publicPolicy),
|
|
})
|
|
);
|
|
console.log(`✅ Bucket ${BUCKET_NAME} configurado como público!`);
|
|
} catch (error) {
|
|
console.error("Erro:", error.message);
|
|
}
|
|
}
|
|
|
|
main();
|