【发布时间】:2021-12-29 20:40:21
【问题描述】:
我正在尝试通过管道传输存储在 S3 存储桶中的图像的签名 URL。
当使用常规的“getObject”方法时,我可以这样做
app.get("/images/:key", (req, res) => {
const key = req.params.key;
const downloadParams = {
Key: key,
Bucket: bucketName,
};
const readStream = s3.getObject(downloadParams).createReadStream();
readStream.pipe(res);
});
但是当我尝试使用 getSignedUrlPromise 时,我不能使用 createReadStream 方法,因为它说它不是一个函数。
const readStreamSigned = await s3
.getSignedUrlPromise("getObject", downloadParams).createdReadStream // throws createReadStream is not a function
readStreamSigned.pipe(res)
如何使用 getSignedUrl 或 getSignedUrlPromise 实现这一目标?
【问题讨论】:
-
getSignedUrlPromise返回一个字符串,只需将该字符串返回给客户端即可。 -
这个想法是,当导航到 api 链接时,浏览器会为您呈现图像,将字符串返回给客户端只会给他们以文本形式的 url
-
“常规 getObject”会发生什么?
-
我的要求是使用预签名的网址
标签: node.js amazon-s3 signed-url