gpt4 book ai didi

node.js - 使用 aws-sdk 的 AWS S3 签名 URL 失败并显示 "AuthorizationQueryParametersError"

转载 作者:太空宇宙 更新时间:2023-11-03 23:02:15 24 4
gpt4 key购买 nike

我正在尝试为 S3 上的私有(private)文件 test.png 创建预签名 URL。我的代码:

var AWS = require('aws-sdk'); 

AWS.config.region = 'eu-central-1';

const s3 = new AWS.S3();

const key = 'folder/test.png';
const bucket = 'mybucket';
const expiresIn = 2000;

const params = {
Bucket: bucket,
Key: key,
Expires: expiresIn,
};
console.log('params: ', params);
console.log('region: ', AWS.config.region);

var url = s3.getSignedUrl('getObject', params);
console.log('url sync: ', url);

s3.getSignedUrl('getObject', params, function (err, urlX) {
console.log("url async: ", urlX);
});

它会在控制台中返回一个 URL。当我尝试访问它时,它显示

<Error>
<Code>AuthorizationQueryParametersError</Code>
<Message>
Query-string authentication version 4 requires the X-Amz-Algorithm, X-Amz-Credential, X-Amz-Signature, X-Amz-Date, X-Amz-SignedHeaders, and X-Amz-Expires parameters.
</Message>
<RequestId>97377E063D0B1D09</RequestId>
<HostId>
6GE7EdqUvCEJis+fPoWR0Ffp2kN9Mlql4gs+qB4uY3hA4qR2wYrImkZfv05xy4XVjsZnRDVN63s=
</HostId>
</Error>

我完全陷入困境,非常感谢一些关于如何解决它的想法。

最佳答案

我测试了你的代码。我只对 key 进行了修改和bucket 。有用。我可以知道您正在使用的aws sdk版本和您正在使用的nodejs版本吗?我的测试是在nodejs 8.1.2和aws-sdk@2.77.0上执行的。

当我执行curl时,我能够重现您的错误。

curl url (错误)-> <Error><Code>AuthorizationQueryParametersError</Code><Message>Query-string authentication version 4 requires the X-Amz-Algorithm, X-Amz-Credential, X-Amz-Signature, X-Amz-Date, X-Amz-SignedHeaders, and X-Amz-Expires parameters.</Message>

curl "url" (已工作)

如果不使用双引号进行 curl ,则 shell 会将 & 符号解释为后台进程。

或者,您可以尝试将生成的链接粘贴到浏览器中。

希望这有帮助。

关于node.js - 使用 aws-sdk 的 AWS S3 签名 URL 失败并显示 "AuthorizationQueryParametersError",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44742493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com