Sto tentando di inviare una richiesta PUT a un URL predefinito amazonS3. La mia richiesta sembra essere chiamata due volte anche se ho solo una richiesta PUT. La prima richiesta restituisce 200 OK
, la seconda restituisce 400 Bad Request
.È consentito un solo meccanismo di autenticazione; solo il parametro di query X-Amz-Algorithm ..?
Ecco il mio codice:
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);
});
L'errore 400 Bad Request
più in dettaglio:
<?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>
Quello che non capisco è, perché è tornando 400? e qual è la soluzione?
Vorrei indagare sul motivo per cui è chiamato due volte, dal momento che il primo sembra funzionare OK –
Hai trovato qualche soluzione? – Hemang
Se vuoi chiamare s3 url, rimuovi le intestazioni di autorizzazione che hai utilizzato per qualsiasi altra API nella tua app prima di chiamarla. –