【问题标题】:what settings do i need to make django-filebrowser work with s3 storages?我需要哪些设置才能使 django-filebrowser 与 s3 存储一起使用?
【发布时间】:2014-05-11 14:38:46
【问题描述】:

我觉得我已经尝试了这里的所有方法来获取静态和用户上传文件夹以使用 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

【问题讨论】:

  • 你找到这个问题的答案了吗?
  • 不,我继续使用 Django Filer
  • 如果有人仍然有兴趣这样做,我设法解决了这个问题并在这里发布了我的发现:stackoverflow.com/a/55535191/1184181

标签: django amazon-s3 django-storage django-filebrowser


【解决方案1】:

你可以使用filebrowser_s3配置几乎一样。

https://pypi.org/project/filebrowser-s3/

INSTALLED_APPS = [
...,
'filebrowser_s3',
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2019-10-08
    相关资源
    最近更新 更多