我试图通过传递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和标题中传递日期,但是没有运气..请帮忙..。
发布于 2015-03-26 12:23:34
解决了问题..。结果,HTTP报头需要采用RFC 7231格式。我格式化了它,它起了作用。下面是我使用的格式,
date -jnu +%a,\ %d\ %h\ %Y\ %T\ %Z
发布于 2021-06-06 23:48:20
也有类似的问题,但得到:
Date must be in ISO-8601 'basic format'
我用这个来修复:
$(date -u +"%Y-%m-%dT%H:%M:%S%z")
https://stackoverflow.com/questions/29276609
复制相似问题