【发布时间】:2020-12-14 23:27:38
【问题描述】:
我已使用 aws-sdk 将文件上传到 S3 存储桶:
async function uploadFileToAws(file){
const fileName = `new_file_${new Date().getTime()}_${file.name}`;
const mimetype = file.mimetype;
const params = {
Bucket: config.awsS3BucketName,
Key: fileName,
Body: file.data,
ContentType: mimetype,
// ACL: 'public-read'
};
const res = await new Promise((resolve, reject) => {
s3.upload(params, (err, data) => err == null ? resolve(data) : reject(err));
});
return { secure_url: res.Location };
}
如果我们允许bucket权限公开读取那么没有问题,但是我们有阻塞public-read(public-access)的要求,并且只允许bucket对象或图像的访问只在自己的产品中可见(移动和网络应用程序)在访问 ID 和密钥或任何其他类似方法的帮助下。这可能吗? aws S3 是否提供此类服务?
我浏览了 aws s3 文档、谷歌搜索并浏览了多个 StackOverflow 线程和一些博客,但没有运气。我非常感谢您的建议、提示和帮助。
【问题讨论】:
-
您的用户是否必须先对您的应用或网站进行身份验证才能访问图像?
-
是的,我们在用户访问图像之前进行了用户身份验证。
标签: node.js amazon-web-services amazon-s3 aws-sdk