我正在尝试通过传递AWS要求的必需标头来使用cURL进行简单图像上传,但出现以下错误...
<Code>AccessDenied</Code><Message>AWS authentication requires a valid Date or x-amz-date header</Message>
以下是我要传递的授权标头。
curl -X PUT -T "/some/file.jpg" \
-H "Host: bucket.s3.amazonaws.com" \
-H "Date: date" \
-H "Content-Type: image/jpg" \
-H "Authorization: AWS XXXXXXX:XXXXXXXXXX" \
https://bucket.s3.amazonaws.com/
下面是签名的制作方法,
signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${s3Secret} -binary | base64`
我试过在stringToSign和标头中传递日期,但没有运气..请帮助..
解决了该问题。事实证明HTTP标头必须采用RFC 7231格式。我对其进行了格式化,并且可以正常工作。下面是我使用的格式,
date -jnu +%a,\ %d\ %h\ %Y\ %T\ %Z
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句