我有一个类 S3Download ,该类正在从 S3 存储桶中获取图像文件的URL,当我在同一文件中记录URL时,通过从控制台单击URL即可下载图像,而当我返回URL并执行res.redirect(URL)
或从 index.js 中的 console.log 单击URL时,就会下载图像strong>文件(包含路由),然后在浏览器中显示以下错误:
此XML文件似乎没有与之关联的任何样式信息。文档树如下所示。
<Error> <Code>InvalidRequest</Code> <Message> The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. </Message> <RequestId>AAD90E10F9642E33</RequestId> <HostId> aV3WPRpYPjK8kUreukEZFbBV0KKECS6YdVViNEaA/dK0P5/hVrVX3yQd/k0kqWSl1PPuEuC7M0M= </HostId> </Error>
class S3Download {
constructor(app, response) {
this.app = app
this.response = response
}
downloadFaster(file) {
const s3 = this.app.s3
const options = {
Bucket: 'filesharingapp',
Key: file.filename,
Expires: 3600
}
const url = s3.getSignedUrl('getObject', options)
console.log('s3Download fasterDownload url ==> ', url)
return url
}
}
module.exports = {
S3Download
}
index.js
在路线内调用以下代码
const downloader = new S3Download(router, res)
const fileUrl = downloader.downloadFaster(result)
console.log('fileUrl ==> ', fileUrl)
return res.redirect(fileUrl)
我不确定这是怎么回事,这要么是AWS S3的问题,要么是Node.JS中的菜鸟
编辑1:2019年5月6日
现在,两个URL都可以正常工作并打开图像,但是res.redirect
仍然出现错误。谁能对S3为何在res.redirect
上引发错误提供任何见解?