跳转到主要内容

通过哈希值命名的Django存储后端。

项目描述

https://travis-ci.org/ecometrica/django-hashedfilenamestorage.svg?branch=master

django-hashedfilenamestorage

通过哈希值命名的Django存储后端。

默认情况下,django.core.files.storage.FileSystemStorage 通过在文件名后添加一个下划线和随机的7个字符的字母数字字符串来处理冲突的文件名。例如,当你尝试创建已存在的 hello.txt 时,它将被重命名为例如 hello_a12mkj3.txt

django-hashedfilenamestorage 创建哈希文件名,因此如果你尝试创建内容为 Hello world!hello.txt,它将被保存为 d3486ae9136e7856bc42212385ea797094475802.txt。目录名称和扩展名将被保留,只有根文件名被更改。这减少了底层后端存储的重复文件数量,并意味着这些文件可以从一个永不过期的静态缓存中提供服务。

安装

安装 django-hashedfilenamestorage 最简单的方法是使用 pip

pip install django-hashedfilenamestorage

快速入门

在你的 Django settings 文件中

  • DEFAULT_FILE_STORAGE 设置为 'django_hashedfilenamestorage.storage.HashedFilenameFileSystemStorage'

这为您提供了基于 Django 的 FileSystemStorage 存储类的哈希文件名。

HashedFilenameMetaStorage

您可以使用 HashedFilenameMetaStorage 来包装它以定义新的底层存储类

from django.core.files.storage import get_storage_class

from django_hashedfilenamestorage.storage import HashedFilenameMetaStorage

HashedFilenameMyStorage = HashedFilenameMetaStorage(
    storage_class=get_storage_class('myapp.storage.MyStorage'),
)

哈希算法

HashedFilenameMetaStorage 的目的是为具有相同内容的文件生成重复的文件名。为此,它读取文件的内容并生成它们的 SHA-1 哈希。

文件名保留了它们的扩展名,因此文件系统上可能有重复的内容,但重要的是要帮助以适当的内容类型提供文件。

项目详情


下载文件

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

源分布

django-hashedfilenamestorage-2.4.1.tar.gz (4.9 kB 查看哈希值)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面