通过哈希值命名的Django存储后端。
项目描述
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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4714b6c9df6282f8005733e367de41a12a1c623cfc5d0cd171556d765c15ee17 |
|
MD5 | db3e46cd346ee4879c834a86b855bb84 |
|
BLAKE2b-256 | 0e06937c2e1ff1962b7b9bcdd8adfc320452a0a3c353b2864ba2f696f8638094 |