gpt4 book ai didi

angularjs - 仅允许一种身份验证机制;仅X-Amz-Algorithm查询参数。

转载 作者:行者123 更新时间:2023-12-03 09:30:38 24 4
gpt4 key购买 nike

我正在尝试将PUT请求发送到amazonS3预签名URL。即使我只有一个PUT请求,我的请求似乎也被调用了两次。第一个请求返回200 OK,第二个请求返回400 Bad Request

这是我的代码:

var req = {
method: 'PUT',
url: presignedUrl,
headers: {
'Content-Type': 'text/csv'
},
data: <some file in base64 format>
};

$http(req).success(function(result) {
console.log('SUCCESS!');
}).error(function(error) {
console.log('FAILED!', error);
});
400 Bad Request错误的详细信息:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>InvalidArgument</Code>
<Message>Only one auth mechanism allowed; only the X-Amz-Algorithm query parameter, Signature query string parameter or the Authorization header should be specified</Message>
<ArgumentName>Authorization</ArgumentName>
<ArgumentValue>Bearer someToken</ArgumentValue>
<RequestId>someRequestId</RequestId>
<HostId>someHostId</HostId>
</Error>

我不明白的是,为什么它返回400?解决方法是什么?

最佳答案

您的客户端可能正在发送一个使用Authorization header 的初始请求,并通过302响应。该响应包括一个具有Signature参数的Location header 。问题在于,来自初始请求的 header 被复制到后续的重定向请求中,因此它既包含授权又包含签名。如果您从随后的请求中删除“授权”,那就应该不错。

这发生在我身上,但是在Java / HttpClient环境中。我可以提供Java解决方案的详细信息,但不幸的是,无法提供AngularJS。

关于angularjs - 仅允许一种身份验证机制;仅X-Amz-Algorithm查询参数。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31514336/

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