 <p>The problem can be that you requesting a SignedUrl for a PUT request but you later on POST the file to S3. You should PUT the file to S3 not POST.</p> <p>SignedUrls only allow GET and PUT right now.</p> <p>For more info see this answer: <a href="http://stackoverflow.com/questions/19322697/upload-file-from-angularjs-directly-to-amazon-s3-using-signed-url/28125814#28125814">upload-file-from-angularjs-directly-to-amazon-s3-using-signed-url</a></p>