【发布时间】:2021-07-15 07:53:06
【问题描述】:
我正在为我的一个网站使用 Node JS。根据网站的要求,我使用 Amazon S3 将图像存储在存储桶中。
我正在使用 API 使用访问密钥和 secretases 密钥在我的 Amazon S3 存储桶中动态上传图像。
但现在我想使用节点 JS 在网站中预览或显示那些上传的图像(不是一次全部)。请注意,S3 存储桶不是公开的。
谁能建议如何使用 Node JS 从 Amazon S3 检索图像? 尝试使用 getObject(),出现 403 禁止错误。文件成功上传到 S3 存储桶,读取文件时由于禁止错误而无法看到上传的文件。
这是我的代码
let fileNew = request.file;
if (!fileNew) {
response.status(200).json({ message: "Failure, please upload file", status: 400 });
}
const params = {
Bucket: aws_s3_bucketName,
Key: fileNew.originalname,
Body: fileNew.buffer,
};
s3.upload(params, async function (err: any, data: any) {
if (err) {
return console.log("There was an error while uploading your file: ", err.message);
}
const fileInfo =data.Location;
response.status(200).json({ message: "Success", data: fileInfo , status: 200 });
});
s3.getObject(params, function(err, data) {
if (err){
console.log(err, err.stack);
}
else {
console.log(data);
}
});
【问题讨论】:
-
确保您使用的 iam 角色具有 s3:GetObject 权限
-
@AmanB,是的,有权限
标签: node.js typescript amazon-s3