我正在使用AWS.S3.ManagedUpload将文件上传到AWS S3。一切都很简单,直到我想获取上传文件的预签名URL。
我正在创建AWS.S3.ManagedUpload,并启动发送方法。
const params = {
Bucket: process.env.S3_BUCKET_NAME,
Key: fileKey,
Body: fileStream,
}
const upload = new AWS.S3.ManagedUpload({ params })
upload.send((err, data) => {
if (err) {
console.log(err)
}
// handle successful upload
})
}
结果是我收到了带有非单个URL的对象。因此,只有在我要避免使用公共存储桶的情况下,才能访问它。
答案 0 :(得分:0)
我找到了简单的解决方案。上传完成后,您需要使用AWS.S3.getSignedUrl。
upload.send((err, data) => {
if (err) {
// handle error
}
const signedUrl = s3.getSignedUrl('getObject', params)
...
参数为{ Bucket, Key, Expires }