Django无法从开发服务器中的AWS S3加载媒体文件

问题描述 投票:0回答:1

媒体文件已正确上传到aws s3存储桶,但未呈现到html页面。有人可以帮我吗?我找不到问题所在。

错误

如果我单击找到的图像链接,则会出现以下错误。

<Error>
<Code>InvalidRequest</Code>
<Message>
The authorization mechanism you have provided is not supported. Please 
use AWS4-HMAC-SHA256.
</Message>
<RequestId>C6FE9209F5DE6296</RequestId>
<HostId>
 ry5ZRPCWjDxcxsYzII8q+x6BVMzRRiqvU1kZYxA5OQd07ojkyaqGoAd/OI=
</HostId>
</Error>

settings.py

变量设置如下所示。

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
CRISPY_TEMPLATE_PACK = 'bootstrap4'

AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRECT_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.environ.get('AWS_STORAGE_BUCKET_NAME')

AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
python django amazon-web-services amazon-s3
1个回答
0
投票

您可能需要添加

AWS_S3_SIGNATURE_VERSION = "s3v4"

以确保s3未使用v2,并非所有地区都支持。

© www.soinside.com 2019 - 2024. All rights reserved.