我有以下配置:
Django/DRF Boto3 Django 存储
我正在使用带有一组密钥的 IAM 用户凭证。我已经从我的帐户中删除了所有其他密钥集,包括根密钥,以消除密钥不匹配。
我创建了一个新的存储桶my-prod-bucket。更新了我的 env 文件中的存储桶名称设置。我跑了python3 manage.py collectstatic,它毫无问题地创建了新的存储桶。
我的.env:
AWS_ACCESS_KEY_ID=something
AWS_SECRET_ACCESS_KEY=something
AWS_STORAGE_BUCKET_NAME=my-prod-bucket
Run Code Online (Sandbox Code Playgroud)
我的 settings.py(使用 python-decouple 从 .env 中抓取):
AWS_ACCESS_KEY_ID = config('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = config('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = config('AWS_STORAGE_BUCKET_NAME')
AWS_S3_CUSTOM_DOMAIN = '%s.s3.ca-central-1.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
AWS_S3_REGION_NAME = 'ca-central-1'
AWS_HEADERS = {
'CacheControl': 'max-age=86400',
}
AWS_STATIC_LOCATION = 'static'
STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_STATIC_LOCATION)
STATICFILES_STORAGE = 'portal.storage_backends.StaticStorage'
# =======
AWS_DEFAULT_ACL = None
AWS_AUTO_CREATE_BUCKET = True
S3_USE_SIGV4 = True
Run Code Online (Sandbox Code Playgroud)
我可以上传和删除,但是当我尝试下载文件时,我得到:
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>
The …Run Code Online (Sandbox Code Playgroud)