首页 > 解决方案 > 将对象保存在具有公共访问权限的 AWS S3 存储桶中

问题描述

在 S3 存储桶中,每次我创建一个具有动态名称的文件夹和多个具有私有访问权限的图像时都很好,一个图像我需要授予公共访问权限,我在这里使用 aws-sdk Javascript 我的代码来保存我需要的图像授予公共访问权限

const Aws = require('aws-sdk');
const Bucket_Name=process.env.BUCKET_NAME;
const IAm_user_Key=process.env.IAM_USER_KEY;
const IAm_user_Secret=process.env.IAM_USER_SECRET;
const uniqueID = getuniqueid();

///Setting AWS
Aws.config.update({ accessKeyId:IAm_user_Key,secretAccessKey:IAm_user_Secret,region:'ap-south-1' });

//Setting S3 Bucket
var s3Bucket = new Aws.S3({params: {Bucket: Bucket_Name}});

//Setting up poster 
var poster = new Buffer(data.poster.replace(/^data:image\/\w+;base64,/, ""),'base64');
var posterdata = { Key: (uniqueID+'/poster'), Body: poster, ContentEncoding: 'base64', ContentType: 'image/png'};
    saveImagetos3(posterdata);

function saveImagetos3(data){
        s3Bucket.putObject(data, function(err, data){
            if (err) { 
              console.log(err,"Error uploading image");
            } else {
              console.log('succesfully uploaded the image!');
            }
        });
    }

function getuniqueid(){
  //Some blah blah code for create random id
  return randomID;
}

标签: amazon-web-servicesamazon-s3aws-sdk-jsaws-sdk-nodejs

解决方案


我知道我的错误,我将这些所有选项设置为 True,但是当我们设置 ACL:'public-access' 并且在我们的 put 请求中然后请求拒绝错误时我知道了: Access DENIED as per Docs Amazon S3 Blocking Public access,我只是将设置重置为 false,它对我有用。


推荐阅读