小编klo*_*ter的帖子

SignatureDoesNotMatch - Boto3 Django 存储

我有以下配置:

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)

python django amazon-s3 django-rest-framework boto3

3
推荐指数
2
解决办法
1197
查看次数

标签 统计

amazon-s3 ×1

boto3 ×1

django ×1

django-rest-framework ×1

python ×1