Какие настройки мне нужны, чтобы django-filebrowser работал с хранилищами s3?
Мне кажется, что я попробовал почти все здесь, чтобы получить статические и пользовательские папки для работы с s3. В этот момент, когда я бегу collectstatic
все папки внутри media
в конечном итоге внутри static
, хотя я почти уверен, что настроил две папки для создания.
Я подозреваю, что это как-то связано с django-filebrowser. Кажется, что они сделали некоторые настройки для хранилищ, но я не могу понять, как заставить их работать:
http://django-filebrowser.readthedocs.org/en/latest/settings.html?highlight=storages
http://django-filebrowser.readthedocs.org/en/latest/admin.html?highlight=storages
Кто-нибудь здесь заставил django-filebrowser работать с s3? Если нет, то где вы порекомендуете мне размещать пользовательские файлы загрузки?
django-filebrowser это связано довольно близко к моему приложению. У меня есть его настройка, чтобы автоматически создавать массив миниатюр с каждой загрузкой изображения, и это прекрасно работает. Это бесполезно для меня, если я не могу получить его с моей локальной машины, хотя.
выдержки из моего settings.py
:
from django.conf import settings
import dj_database_url # HEROKU
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]
INSTALLED_APPS = (
'grappelli',
'filebrowser',
'django.contrib.contenttypes',
'django.contrib.auth',
'django.contrib.admin',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'debug_toolbar',
'frontpage',
# adding south to try out with django 1.6
'south',
'inplaceeditform',
'inplaceeditform_extra_fields',
'storages',
'boto',
)
# GRAPPELLI SPECIFIC RECOMMENDED ##
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'django.contrib.staticfiles.finders.FileSystemFinder',
)
#-------------------------------------------------------------
# DJANGO STORAGES
DEFAULT_FILE_STORAGE = 'addition_interiors_project.s3utils.MediaRootS3BotoStorage'
STATICFILES_STORAGE = 'addition_interiors_project.s3utils.StaticRootS3BotoStorage'
AWS_ACCESS_KEY_ID = 'xxxxxxxxxx'
AWS_SECRET_ACCESS_KEY = 'xxxxxxxxxx'
AWS_STORAGE_BUCKET_NAME = 'xxxxxxxxxx'
AWS_PRELOAD_METADATA = True
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
os.path.join(BASE_DIR, 'media'),
)
MEDIA_ROOT = '/media/'
STATIC_ROOT = '/static/'
S3_URL = 'http://s3.amazonaws.com/%s' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = S3_URL + STATIC_ROOT
MEDIA_URL = S3_URL + MEDIA_ROOT
#-------------------------------------------------------------
#-------------------------------------------------------------
# DJANGO-FILEBROWSER
#-------------------------------------------------------------
FILEBROWSER_VERSIONS_BASEDIR = '_versions'
FILEBROWSER_VERSIONS = {
'admin_thumbnail': {'verbose_name': 'Admin Thumbnail', 'width': 60, 'height': 60, 'opts': 'crop'},
'thumbnail': {'verbose_name': 'Thumbnail (1 col)', 'width': 60, 'height': 60, 'opts': 'crop'},
'small': {'verbose_name': 'Small (2 col)', 'width': 140, 'height': '', 'opts': ''},
'medium': {'verbose_name': 'Medium (4col )', 'width': 300, 'height': '', 'opts': ''},
'big': {'verbose_name': 'Big (6 col)', 'width': 460, 'height': '', 'opts': ''},
'large': {'verbose_name': 'Large (8 col)', 'width': 680, 'height': '', 'opts': ''},
'mega': {'verbose_name': 'Mega (12 col)', 'width': 940, 'height': '', 'opts': ''},
}
FILEBROWSER_ADMIN_VERSIONS = getattr(
settings, 'FILEBROWSER_ADMIN_VERSIONS', ['thumbnail', 'small', 'medium', 'big', 'large', 'mega'])
также мой s3utils.py:
from storages.backends.s3boto import S3BotoStorage
StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static')
MediaRootS3BotoStorage = lambda: S3BotoStorage(location='media')
структура моей папки:
addition_interiors_project
..manage.py
..addition_interiors_project
.... addition_interiors_project
....средства массовой информации
.... статические
....титульная страница
.... s3utils.py
.... settings.py
.... urls.py
.... wsgi.py
1 ответ
Вы можете использовать конфигурацию filebrowser_s3 почти так же.
https://pypi.org/project/filebrowser-s3/
INSTALLED_APPS = [
...,
'filebrowser_s3',
]