title: Only one auth mechanism allowed; only the X-Amz-Algorithm query parameter..?
body: <p>I am trying to send a PUT request to an amazonS3 presigned URL. My request seems to be called twice even if I only have one PUT request. The first request returns <code>200 OK</code>, the second one returns <code>400 Bad Request</code>.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>var req = {
      method: 'PUT',
      url: presignedUrl,
      headers: {
          'Content-Type': 'text/csv'
      },
      data: &lt;some file in base64 format&gt;
  };
  
  $http(req).success(function(result) {
      console.log('SUCCESS!');
  }).error(function(error) {
      console.log('FAILED!', error);
  });
  </code></pre>
  
  <p>The <code>400 Bad Request</code> error in more detail:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;Error&gt;
     &lt;Code&gt;InvalidArgument&lt;/Code&gt;
     &lt;Message&gt;Only one auth mechanism allowed; only the X-Amz-Algorithm query parameter, Signature query string parameter or the Authorization header should be specified&lt;/Message&gt;
     &lt;ArgumentName&gt;Authorization&lt;/ArgumentName&gt;
     &lt;ArgumentValue&gt;Bearer someToken&lt;/ArgumentValue&gt;
     &lt;RequestId&gt;someRequestId&lt;/RequestId&gt;
     &lt;HostId&gt;someHostId&lt;/HostId&gt;
  &lt;/Error&gt;
  </code></pre>
  
  <p>What I don't understand is, why is it returning 400? and What's the workaround?</p>