【发布时间】:2016-04-22 07:04:49
【问题描述】:
我正在尝试在我的应用中使用 django-storages 和 s3boto,并尝试从 s3 提供媒体和静态文件。
我的设置文件中有以下设置:
AWS_STORAGE_BUCKET_NAME = '<bucket_name>'
AWS_S3_ACCESS_KEY_ID = '<access_key>'
AWS_S3_SECRET_ACCESS_KEY = '<secret>'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
STATICFILES_LOCATION = 'static'
STATICFILES_STORAGE = '<custom_storage_satic>'
MEDIAFILES_LOCATION = 'media'
DEFAULT_FILE_STORAGE = '<custom_storage_media>'
而我的 custom_storages.py 是
from django.conf import settings
from storages.backends.s3boto import S3BotoStorage
class StaticStorage(S3BotoStorage):
location = settings.STATICFILES_LOCATION
class MediaStorage(S3BotoStorage):
location = settings.MEDIAFILES_LOCATION
当我在 django 中创建图像时,而不是获取图像的相对路径以开头
image.url
'/media/image/<rest_of_the_path>.jpg'
我得到的是绝对网址,类似于
image.url
'https://<s3_bucket_name>.s3.amazonaws.com/media/image/original/'
当我使用本地存储而不是 s3boto 时,它会按预期工作并为我提供相对路径。我在这里遗漏了什么吗?
【问题讨论】:
标签: python django amazon-s3 django-storage django-media