我正在尝试为法兰克福S3存储桶中的对象创建已签名的CloudFront URL(使用python库boto)。这曾经与eu-west-1桶很好地协同工作,但现在我收到以下错误消息:
<Error>
<Code>InvalidRequest</Code>
<Message>
The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.
</Message>
...
我了解新的S3位置需要使用AWS4-HMAC-SHA256签署API请求,但我无法在AWS文档中找到如何更改已签名的CloudFront URL的创建
修改
为了澄清,下面的代码生成了一个签名的URL而没有引发错误......之后在浏览器中打开创建的URL时发生错误
cf = cloudfront.CloudFrontConnection(aws_access_key_id=settings.AWS_ACCESS_KEY_ID,
aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY)
distribution_summary = cf.get_all_distributions()[0]
distribution = distribution_summary.get_distribution()
return distribution.create_signed_url(url,
settings.CLOUDFRONT_KEY_ID,
int(time()) + expiration,
private_key_file=settings.PRIVATE_KEY_FILE)
答案 0 :(得分:0)
我发现了这个问题,实际上是云端分发本身。似乎将已经存在(很长一段时间)从美国桶到欧盟桶的分销的起源移动起来并没有成功。
我创建了一个具有相同设置的新设置(新的Origin Access Identity除外)并且它没有任何问题。