按哈希值命名文件的django存储后端。

django-hashedfilenamestorage的Python项目详细描述


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

django-hashedfilenamestorage

按哈希值命名文件的django存储后端。

默认情况下,django.core.files.storage.FileSystemStorage处理 通过附加下划线和随机7来冲突文件名 文件的字母数字字符串。为了 实例,如果您试图在它已经存在时创建^ {TT3}$, 它将重命名为hello_a12mkj3.txt

django-hashedfilenamestorage创建哈希文件名,因此如果 尝试用内容Hello world!创建hello.txt,它将 另存为d3486ae9136e7856bc42212385ea797094475802.txt。号码簿 保留名称和扩展名,只有根文件名是 改变。这将减少存储在 底层后端,并意味着这些文件可以从 永不过期的静态缓存。

安装

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

pip install django-hashedfilenamestorage

快速启动

在您的djangosettings文件中:

  • 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散列。

文件名保留了其扩展名,因此 文件系统上有重复的内容,但是帮助 为文件提供适当的内容类型。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java组织。openqa。硒。遥远的UnreachableBrowserException如何定义EXE路径?   java Camel AdviceWith不使用指定文件替换端点   基于字符串的java图像加载   Java中的启发式算法,计算8个谜题状态的线性冲突   java为什么不支持文件。probeContentType返回null   JPA@EntityListeners、@PrePersist和Spring@RepositoryEventHandler、@HandleBeforeSave之间的java差异   可能前缀的Java字符串到字符串[]   安装rJava | Makefile时发生java错误。全部:38:target’libjri的配方。所以他失败了   Java公共静态void main()   java如何覆盖txt文件中的某些单词   java如何获得循环中生成的字符值之和?   java Log4j创建另一个具有相同属性的appender   java如何在从Axis2 Web服务客户端通过代理服务器调用Web服务时设置代理设置?   在Windows上安装Elasticsearch时发生java错误   java如何向EditText组件添加TextChangedListener?