我正在嘗試將一個PUT請求發送到amazonS3預先設置的URL。即使我只有一個PUT請求,我的請求似乎也會被調用兩次。第一個請求返回200 OK
,第二個返回400 Bad Request
。只允許一個授權機制;只有X-Amz-Algorithm查詢參數..?
這裏是我的代碼:
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?和什麼是解決方法?
我會調查爲什麼它被稱爲兩次,因爲第一次看起來工作OK –
您是否找到任何解決方案? – Hemang
如果您想調用s3 url,只需在調用之前刪除您在應用中用於其他任何API的授權標頭。 –