python - AWS 未在部署在 heroku 上的 Django 网站上显示图像
问题描述
我正在尝试通过 Amazon AWS S3 在 Heroku 上托管的 Django 网站上显示我的媒体文件。目前,我对 AWS 的设置是:
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.environ.get('AWS_STORAGE_BUCKET_NAME')
AWS_DEFAULT_ACL = None
AWS_S3_OBJECT_PARAMETERS = {'CacheControl': 'max-age=86400',}
DEFAULT_FILE_STORAGE = 'register.storage_backends.MediaStorage'
在我的 storage_backends.py 我有:
from storages.backends.s3boto3 import S3Boto3Storage
class MediaStorage(S3Boto3Storage):
location = 'media'
file_overwrite = False
当我打开我的网站并检查图像时,我什至可以看到 url 似乎是正确的:
https://mybucket.s3.amazonaws.com/media/defaults/user/default_u_i.png?AWSAccessKeyId=...
但是,我仍然看不到图像,它显示了默认缩略图。我在这里做错了什么?我已将文件上传到我的存储桶,并且我已经检查了多次,它们位于正确的目录中。
感谢您提前提供的所有帮助!
解决方案
看来我也必须添加我的REGION_NAME
集合,所以我添加了:
AWS_S3_REGION_NAME = 'REGION_NAME'
我的设置也是如此。
推荐阅读
- javascript - 如何委派此功能
- c - 如何简化复合否定逻辑
- docker - 如何在阻塞端口的同时仅允许通过特定 URL 访问 MERN 项目中的 Docker 容器?
- javascript - 清除 jQuery 变量的缓存
- c# - SqlDataReader 未从数据库中读取数据
- c - 非阻塞套接字
- php - Statustext: undefined with status:200 using Axios to pass textinput values using react native XAMPP server
- python - 为什么使用 FFT 对信号中的频率值进行四舍五入?
- json - 将对象集放入 JSON
- mysql - MySQL:索引列上的 COUNT(DISTINCT) 有多贵?