Node.js 使用AWS sdk的AWS S3签名URL失败,返回“0”;授权查询参数错误“;

Node.js 使用AWS sdk的AWS S3签名URL失败,返回“0”;授权查询参数错误“;,node.js,amazon-s3,aws-sdk,pre-signed-url,Node.js,Amazon S3,Aws Sdk,Pre Signed Url,我正在尝试为S3上的私有文件test.png创建一个预签名URL。 我的代码: 它在控制台中返回一个URL。 当我尝试访问它时,它显示 <Error> <Code>AuthorizationQueryParametersError</Code> <Message> Query-string authentication version 4 requires the X-Amz-Algorithm, X-Amz-Credential, X-Amz-S

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

它在控制台中返回一个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>

我完全被卡住了,如果能想出一些解决办法,我将不胜感激。

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

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

curl url
(错误)->
AuthorizationQueryParametersError
查询字符串身份验证版本4需要X-Amz-Algorithm、X-Amz-Credential、X-Amz-Signature、X-Amz-Date、X-Amz-SignedHeader和X-Amz-Expires参数。

curl“url”
(工作)

如果不使用双引号进行卷曲,则shell会将“与”符号解释为背景进程

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


希望这有帮助。

签名的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>