res.redirect()在打开s3 URL时引发错误

时间:2019-05-01 16:55:54

标签: javascript node.js express amazon-s3

我有一个类 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>


S3Download 助手类:

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上引发错误提供任何见解?

0 个答案:

没有答案