首页 > 解决方案 > 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=...

但是,我仍然看不到图像,它显示了默认缩略图。我在这里做错了什么?我已将文件上传到我的存储桶,并且我已经检查了多次,它们位于正确的目录中。

感谢您提前提供的所有帮助!

标签: pythondjangoamazon-web-servicesheroku

解决方案


看来我也必须添加我的REGION_NAME集合,所以我添加了:

AWS_S3_REGION_NAME = 'REGION_NAME'我的设置也是如此。


推荐阅读