由现有数据库支持的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。
- 安全头设置为防止不受信任的内容成为跨站脚本漏洞。
- 后端支持
delete
、exists
、listdir
、size
、url
、created_time
和modified_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
项目详情
关闭
哈希值 for django_database_storage_backend-1.0.0-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 38b1ccd5ba9768b586d0af868fbbdc8a039d63aae040571ab66e17405a26bd25 |
|
MD5 | eb8309e09a246393ff9ad7a17329018a |
|
BLAKE2b-256 | 8020a59d56433a60d952001af484298b44585396debfd0a2699fe58f9a2807e6 |