amazon-web-services - 将对象保存在具有公共访问权限的 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;
}
解决方案
我知道我的错误,我将这些所有选项设置为 True,但是当我们设置 ACL:'public-access' 并且在我们的 put 请求中然后请求拒绝错误时我知道了: Access DENIED as per Docs Amazon S3 Blocking Public access,我只是将设置重置为 false,它对我有用。
推荐阅读
- angular - Angular 6:在 angular-component-library 中使用时未加载 Bing 地图
- ruby-on-rails - 使用 Action Cable 从模型、rails 调用类方法获取未定义的局部变量或方法
- python - Python:从文件中分割句子
- javascript - 对 express 和 Mongoose 做出正确的错误处理和响应
- .htaccess - 重定向目标 URL 在域后缺少斜杠
- python - While 循环忽略条件(如果,否则),只打印第一个建议的打印选项
- php - 如何忽略来自 WordPress 插件样式表的特定 CSS 代码?
- python - 检查用户创建的列表项是否存在于预制列表中的问题
- javascript - 关于 JSON 对象
- python - 如何避免稀疏到密集的矩阵转换