Django可以上传到S3,但不能从S3获取
我已经将django配置为使用s3保存媒体文件。我可以从应用程序上传文件,这些文件存储在s3上,但是如果我试图查看这些媒体文件,就会出现此错误Django可以上传到S3,但不能从S3获取,django,amazon-s3,boto3,python-django-storages,Django,Amazon S3,Boto3,Python Django Storages,我已经将django配置为使用s3保存媒体文件。我可以从应用程序上传文件,这些文件存储在s3上,但是如果我试图查看这些媒体文件,就会出现此错误 <Error> <Code>SignatureDoesNotMatch</Code> <Message> The request signature we calculated does not match the signature you provided. Check your key and sig
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>
The request signature we calculated does not match the signature you provided. Check your key and signing method.
</Message>
我知道GET请求已启用,因为我可以使用Postman使用相同的凭据获取图像。所以我不完全确定出了什么问题
STATIC_ROOT = os.path.join(BASE_DIR, '/staticfiles/')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, '/image_library/')
MEDIA_URL = '/media/'
AWS_ACCESS_KEY_ID = 'PLACEHOLDER'
AWS_SECRET_ACCESS_KEY = 'PLACEHOLDER'
AWS_STORAGE_BUCKET_NAME = 'childcaredevapp'
AWS_DEFAULT_ACL = None
AWS_S3_FILE_OVERWRITE = False
AWS_S3_SIGNATURE_VERSION = "s3v4"
AWS_S3_REGION_NAME = 'eu-central-1'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
所以。。。长话短说,我通过删除
AWS\u S3\u signature\u VERSION=“s3v4”
行来创建正确的签名。由于某种原因,它们看起来不匹配。我遇到了这个错误,我通过添加AWS\u S3\u ADDRESSING\u样式变量来解决它:
AWS_S3_ADDRESSING_STYLE = "virtual"