我试图在
multer
和@aws-sdk/client-s3
的帮助下将图像从node.js服务器上传到s3存储桶。我使用 aws-sdk
代替 javascript v3
。当我将 aws-sdk
用于 javacript v2 时,我可以使用 Location
属性获取上传图像的链接。但是当使用 v3 时,Location 属性不存在于我得到的结果对象中。
[
{
'$metadata': {
httpStatusCode: 200,
requestId: 'REQUEST ID',
extendedRequestId: 'ID HERE',
cfId: undefined,
attempts: 1,
totalRetryDelay: 0
},
ETag: '"EFTAG HERE"',
ServerSideEncryption: 'AES256'
}
]
是否有任何函数或任何其他方法可以获取上传图像的链接?
我的目的是将图像存储在 s3 存储桶中并将其链接保存到
mongoDB
数据库。
您是正确的,
Location
键在 aws-sdk
(v2) 中暴露,但在 @aws-sdk/client-s3
中不暴露。
不幸的是,仅使用
@aws-sdk/client-s3
是无法解决这个问题的。
@aws-sdk/lib-storage
和 @aws-sdk/client-s3
来解决此问题。
const client = new Upload({
client: new S3Client({}),
params: {
Bucket: '',
Key: '',
Body: '',
},
});
const { Location } = await client.done()
console.log('url', Location)