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

livingbio-django-hashedfilenamestorage的Python项目详细描述


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

默认情况下,django.core.files.storage.FileSystemStorage处理 通过在文件中附加下划线来冲突文件名。为了 实例,如果您尝试在已经存在时创建^ {TT2} $, 它将重命名为hello_.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第三方库


热门话题
maven通过pom文件增加最大java堆大小   java如何在Kojo IDE输出窗格中打印到同一行?   如何使用特定的JRE交付Java应用程序?   java Cordova插件调用日志找不到符号   Java上Redis哈希中的spring列表   java ThreadSafeClientConnManager不是多线程   java如何在激活器中获取IEclipseContext   java如何通过编程更改除法器偏差   在中找不到maven Java/Mvn本地资源。罐包装   JOptionPane的java用户输入验证。showInputDialog   java编辑:如何更改日期对象的日期格式?   文件编写器Java;如何覆盖   一行中包含多个值的java读取属性   java如何在安卓中使用截击上传视频