【发布时间】:2021-08-03 02:48:41
【问题描述】:
我想在我的 Express 路由中为 [user.idKey, user.selfieKey] 数组中的每个键发回两个 S3 预签名 URL。
我知道 S3 已成功获取预签名 URL,因为它们将使用回调 console.log(url) 登录到控制台。
我也尝试在 getSignedUrl 方法前使用“await”,但我认为这不适用于 S3..???
知道我做错了什么吗?
谢谢!
router.get(`/api/verification/load`, auth, async (req, res) => {
try {
const user = await User.findOne({ GETS A USER })
let urlArray = []
const keyArray = [user.idKey, user.selfieKey]
for (const key in keyArray) {
s3VerificationBucket.getSignedUrl(
"getObject",
{
Bucket: "app-verification",
Key: key,
Expires: 30,
},
(err, url) => urlArray.push(url) // when console.log(url) it logs urls
)
}
if (urlArray.length === 0) {
console.log("URL ARRAY EMPTY") -> RETURNS "URL ARRAY EMPTY"
}
const idUrl = urlArray[0]
const selfieUrl = urlArray[1]
res.send({ user, idUrl, selfieUrl })
} catch (err) {
res.status(500).send()
}
})
【问题讨论】:
标签: javascript amazon-web-services express amazon-s3