已签署的用于S3存储桶的CloudFront URL

时间:2014-10-25 13:11:50

标签: python amazon-web-services amazon-s3 boto amazon-cloudfront

我正在尝试为法兰克福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)

1 个答案:

答案 0 :(得分:0)

我发现了这个问题,实际上是云端分发本身。似乎将已经存在(很长一段时间)从美国桶到欧盟桶的分销的起源移动起来并没有成功。

我创建了一个具有相同设置的新设置(新的Origin Access Identity除外)并且它没有任何问题。