AWS 身份验证需要有效日期或 x-amz-date header curl
AWS authentication requires a valid Date or x-amz-date header curl
我正在尝试通过传递 AWS 请求的必需 headers 使用 cURL 进行简单的图像上传,但我收到以下错误...
<Code>AccessDenied</Code><Message>AWS authentication requires a valid Date or x-amz-date header</Message>
下面是授权header我路过..
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 和 header 中传递日期,但没有成功..请帮忙..
解决了问题。结果是 HTTP header 需要采用 RFC 7231 格式。我格式化了它,它工作了。下面是我使用的格式,
date -jnu +%a,\ %d\ %h\ %Y\ %T\ %Z
有类似的问题但得到:
Date must be in ISO-8601 'basic format'
我用它来修复:
$(date -u +"%Y-%m-%dT%H:%M:%S%z")
我正在尝试通过传递 AWS 请求的必需 headers 使用 cURL 进行简单的图像上传,但我收到以下错误...
<Code>AccessDenied</Code><Message>AWS authentication requires a valid Date or x-amz-date header</Message>
下面是授权header我路过..
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 和 header 中传递日期,但没有成功..请帮忙..
解决了问题。结果是 HTTP header 需要采用 RFC 7231 格式。我格式化了它,它工作了。下面是我使用的格式,
date -jnu +%a,\ %d\ %h\ %Y\ %T\ %Z
有类似的问题但得到:
Date must be in ISO-8601 'basic format'
我用它来修复:
$(date -u +"%Y-%m-%dT%H:%M:%S%z")