Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django可以上传到S3,但不能从S3获取_Django_Amazon S3_Boto3_Python Django Storages - Fatal编程技术网

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

我已经将django配置为使用s3保存媒体文件。我可以从应用程序上传文件,这些文件存储在s3上,但是如果我试图查看这些媒体文件,就会出现此错误

<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"