为文件提供随机名称的django存储后端。

django-randomfilenamestorage的Python项目详细描述


为文件提供随机名称的django存储后端。

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

django-randomfilenamestorage创建随机文件名,因此如果 尝试创建hello.txt,它将保存为 7z0a8m25sh9fyitx.txt。目录名和扩展名是 保留,只有根文件名是随机的。

安装

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

pip install django-randomfilenamestorage

快速启动

在djangosettings文件中:

  • DEFAULT_FILE_STORAGE设置为 'django_randomfilenamestorage.storage.RandomFilenameFileSystemStorage'
  • 或者,将'django-dbstorage'添加到INSTALLED_APPS

这给你随机的文件名,以django的 FileSystemStorage存储类。

RandomFilenameMetaStorage

您可以使用 RandomFilenameMetaStorage包装:

from django.core.files.storage import get_storage_class

from django_randomfilenamestorage.storage import RandomFilenameMetaStorage

RandomFilenameMyStorage = RandomFilenameMetaStorage(
    storage_class=get_storage_class('myapp.storage.MyStorage'),
)

RandomFilenameMetastorage默认为16个字符的根文件名。到 更改默认值,定义 settings.RANDOM_FILENAME_LENGTH到另一个整数 价值。

要更改包装存储类的文件名长度,请传入 length参数到RandomFilenameMetaStorage。推翻它 对于特定的存储实例,传入一个randomfilename_length 其构造函数的参数。

有效的随机文件名生成

<> P>随机晶状体涂膜术注意不覆盖现有的 文件,创建时。不幸的是,许多存储类不会抛出 当检测到上的重复文件时,OSErrorEEXISTS一起 _save()

如果底层存储类接受uniquify_names=Falsein 它的构造函数RandomFilenameMetaStorage将减少 返回到底层存储类并使其随机 文件名生成效率更高。

安全存储类包括:

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

推荐PyPI第三方库


热门话题
java HttpSession API   如果模式可用,xml java将忽略DTD进行验证   java从远程位置调用Jersey API   在Java中直接从URL读取html   如何使用#Hibernate#Spring#Java在MySql中存储“日期”?   java如何在JSP中迭代列表对象?   java如何使用PDFBox确定实际PDF内容的位置?   utf 8计算Java字符串的UTF8长度,而不实际对其进行编码   java我正在尝试通过whatsapp或任何其他messenger应用程序发送/共享mp3原始文件。   使用Java定期将记录写入CSV文件   用于队列和工作程序设计的java实时执行器池   java与t1的区别是什么。当前线程和线程。当前线程?   java将大字符串写入文本文件?   java传递给侦听器   java如何从对象列表向JComboBox添加项