34 lines
928 B
JavaScript
34 lines
928 B
JavaScript
const { S3Client, PutBucketPolicyCommand } = require("@aws-sdk/client-s3");
|
|
|
|
const client = new S3Client({
|
|
endpoint: process.env.S3_ENDPOINT,
|
|
region: process.env.S3_REGION || "eu-2",
|
|
credentials: {
|
|
accessKeyId: process.env.S3_ACCESS_KEY_ID,
|
|
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
|
|
},
|
|
forcePathStyle: true,
|
|
});
|
|
|
|
const bucket = process.env.S3_BUCKET_NAME || "monuments-images";
|
|
|
|
const policy = {
|
|
Version: "2012-10-17",
|
|
Statement: [
|
|
{
|
|
Sid: "PublicReadGetObject",
|
|
Effect: "Allow",
|
|
Principal: { AWS: ["*"] },
|
|
Action: ["s3:GetObject"],
|
|
Resource: [`arn:aws:s3:::${bucket}/*`],
|
|
},
|
|
],
|
|
};
|
|
|
|
client
|
|
.send(new PutBucketPolicyCommand({ Bucket: bucket, Policy: JSON.stringify(policy) }))
|
|
.then(() => console.log("Bucket policy set successfully:", bucket))
|
|
.catch((err) => {
|
|
console.error("Failed to set bucket policy:", err.message);
|
|
process.exit(1);
|
|
}); |