You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Django Storage与Boto3无法从AWS S3获取媒体文件的技术求助

解决AWS S3 IllegalLocationConstraintException 静态文件访问问题

你遇到的这个错误核心原因是区域端点不匹配:me-south-1(中东巴林区域)属于AWS的区域特定端点,默认的S3请求路由无法正确适配这个区域,导致请求被发送到错误的节点,触发位置约束不兼容的报错。

解决方案:添加区域专属端点配置

在你的settings.py中新增AWS_S3_ENDPOINT_URL配置项,指定me-south-1对应的S3专属端点即可解决问题:

AWS_ACCESS_KEY_ID = <key>
AWS_SECRET_ACCESS_KEY = <secret-key>
AWS_STORAGE_BUCKET_NAME = <bucket-name>
AWS_DEFAULT_ACL = None
AWS_S3_FILE_OVERWRITE = False
AWS_S3_REGION_NAME = 'me-south-1'
# 新增区域专属端点配置
AWS_S3_ENDPOINT_URL = 'https://s3.me-south-1.amazonaws.com'
AWS_S3_USE_SSL = True
AWS_S3_VERIFY = False
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

额外检查项

为了确保问题彻底解决,建议你再确认两点:

  • 你的S3 Bucket确实是在me-south-1区域创建的,避免Bucket区域和配置区域不匹配
  • AWS_S3_REGION_NAME的拼写没有错误(注意是me-south-1,不要和其他相似区域混淆)

修改配置后重启开发服务器,再尝试访问静态文件应该就能正常加载了。

内容的提问来源于stack exchange,提问作者Swalhamdan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 10:57:36