跳转到主要内容

由现有数据库支持的Django 1.10+/2.x存储后端。

项目描述

django-database-storage-backend

由现有数据库支持的Django 1.10+/2.x存储后端。

此模块提供了一个名为dbstorage的应用程序。该应用程序包含一个单一模型StoredFile,存储后端存储的文件都放在这里。应用程序还提供了DatabaseStorage,您可以将它设置在您的文件字段上。

使用方法

安装libmagic,例如。

brew install libmagic

安装此软件包

pip django-database-storage-backend

'dbstorage'放入您的settings.py中的INSTALLED_APPS

添加到您的settings.py

DEFAULT_FILE_STORAGE = 'dbstorage.storage.DatabaseStorage'

添加到您的urls.py URLconf中

url(r'^user-media/', include('dbstorage.urls')),

user-media/确定访问媒体文件的URL路径。您可以将此设置为任何内容。

将文件或ImageFile字段添加到您的模型中

image = models.ImageField(upload_to='some-root')

保存到此字段的文件将存储在数据库中,并在URL路径/user-media/some-root/{HASH}.{EXT}中可用。HASH是文件内容的SHA-1哈希值。通过自动检测文件类型来替换文件扩展名,以便不泄露除文件类型以外的任何文件名信息。这也防止了未经授权的用户随机猜测上传文件的URL(尽管出于安全目的,SHA-1通常已被SHA-256所取代——因此,如果这很重要,不要将其用作唯一授权逻辑)。

upload_to的值不能超过200个字符,因为最大完整路径长度为255个字符。

功能

  • 轻松配置一个仅使用现有数据库存储和提供媒体文件的媒体存储后端。
  • 文件名不会泄露上传源文件的名称,而是基于文件内容的哈希值来防止未经授权的用户猜测文件URL。
  • 安全头设置为防止不受信任的内容成为跨站脚本漏洞。
  • 后端支持deleteexistslistdirsizeurlcreated_timemodified_time函数。
  • 存储的文件将在Django管理界面中显示。

动态图片缩放

在存储图片时,视图方法可以自动将图片缩放到预定义的几个大小之一。要使用此功能,您必须安装pillow。然后,在访问图片时,将?width=加上xs(768像素)、sm(1024像素)、md(1100像素)或lg(1400像素)添加到URL中。响应中返回的图片将以这个大小作为最大维度。

针对项目维护者

要将通用轮发布到PyPI:

    pip3 install twine
    rm -rf dist
    python3 setup.py bdist_wheel --universal
    twine upload dist/*
    git tag v1.0.XXX
    git push --tags

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

此版本没有提供源分布文件。请参阅生成分布存档的教程

构建分布

django_database_storage_backend-1.0.0-py2.py3-none-any.whl (13.1 kB 查看哈希)

上传时间 Python 2 Python 3

由以下机构支持