HTTP PUT リクエストを介して S3 にアップロードします。ここに私のリクエストパラメータがあります:
AWSAccessKeyId=AKIAIHRUBWYK7YNNWSLQ&
Expires=1376556204&
x-amz-meta-cachecontrol:max-age=315360000&
Signature=y7%2F96eP5OXWsqjRSh81T6WNHe%2FQ%3D
これは私に応答を与えます403 SignatureDoesNotMatch
。応答本文にある理由は、一致しようとした文字列が次のとおりであることを示しています。
PUT
image/png
1376556204
x-amz-meta-cachecontrol:max-age:315360000
/test199801672/608ad506f948b52ab130467a7df99381.png
max-age の後にコロンがあることに注意してください。私は結腸を通過したことはありません!=を渡しました。私は何を間違っていますか?
これが私の完全なリクエストです(もちろん本文を差し引いたものです):
PUT /608ad506f948b52ab130467a7df99381.png?AWSAccessKeyId=AKIAIHRUBWYK7YNNWSLQ&Expires=1376556204&x-amz-meta-cachecontrol:max-age=315360000&Signature=y7%2F96eP5OXWsqjRSh81T6WNHe%2FQ%3D HTTP/1.1
Host: test199801672.s3.amazonaws.com
Accept: */*
Accept-Encoding: gzip, deflate
Content-Length: 636109
Content-Type: image/png
Accept-Language: en;q=1, fr;q=0.9, de;q=0.8, ja;q=0.7, nl;q=0.6, it;q=0.5
Connection: keep-alive
User-Agent: Spentit/88 (iPhone Simulator; iOS 6.1; Scale/2.00)