6

我想使用CloudFront 的签名 URL,而不是普通的未签名 URL。

django-storages提供了以下选项,AWS_S3_CUSTOM_DOMAIN但随后它会从 CloudFront 的子域生成未签名的 URL。默认情况下AWS_QUERYSTRING_AUTHTrue它会为 S3 生成签名 URL。为 CloudFront 生成签名 URL 的任何方式。

这是我希望打开的设置,但由于未签名的 URL,我禁用了它。
我希望为我的分发打开的设置

4

1 回答 1

4

好的,自从这次提交以来,django-storages 开发版本现在支持签名的 URL (有关更多信息,请参阅线程)

该版本尚未在 pip 上发布,因此您可以将其添加到您的要求中,如下所示:

-e git+git://github.com/jschneier/django-storages.git@b116e3a235323144cda6d3cc5a5cb27baf076ee2#egg=django-storages-dev

然后你必须更新你的选项:

AWS_S3_CUSTOM_DOMAIN = "Your cloudfront domain" # something like xxxxx.cloudfront.net
AWS_CLOUDFRONT_KEY_ID = "YOUR_CLOUDFRONT_KEY_ID"
with open(os.path.join(BASE_DIR, "cert.pem")) as aws_cert:
    AWS_CLOUDFRONT_KEY = aws_cert.read().encode('ascii')

就是这样。默认过期超时为 24 小时,不知道如何更改。

请注意,CloudFront 密钥与您用于其他 AWS 服务的密钥不同。您必须使用您的根 AWS 账户(不是 IAM 用户)生成它。查看文档

于 2020-05-20T20:19:52.480 回答