支持django中的许多存储(s3、mogilefs等)。
django-storages-redux的Python项目详细描述
Django存储
安装
从pypi安装和执行一样简单:
pip install django-storages-redux
如果您希望从源代码安装(可能在master中有一个错误修复程序 尚未发布)那么您要寻找的魔法咒语是:
pip install -e 'git+https://github.com/jschneier/django-storages.git#egg=django-storages'
完成后,将 存储 添加到已安装的应用程序中,并将 默认文件存储设置为 你选择的后端。例如,如果您想使用您设置的S3BOTO后端:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
还有许多设置可用于控制每个存储后端的工作方式, 请查阅文档以获得完整的列表。
关于
Django Storages是一个提供多种存储后端的项目 一个图书馆。这是它维护的、与python 3兼容的fork。原因 因为叉子在下一节中给出。
目前唯一测试过的与python 3兼容的后端是s3 boto。 但其中一些应该可以正常工作(hashpath、symlink、overwrite)。
此库与django>;=1.7兼容。它还应适用于1.6.2+,但不作任何保证。
为什么用叉子?
原始django存储的bitbucket repo没有应用提交 自2014年3月(目前为2014年12月)以来,未发布PYPI 2013年3月,尽管在那一年中应用了大量的错误修复程序 差距。Django Storages项目有很多社区支持 (尤其是S3botostorage)我个人需要一条蟒蛇 兼容版本。
当前存在的所有python3兼容的分叉(还有一些) 在某种程度上缺乏。这可能是因为他们没有 发布到pypi,没有正在进行的测试,没有应用许多重要的错误修复 自分叉后在Bitbucket回购上发生的或不支持旧版本的 python和django的版本(对于发现bug和保持较大的 社区)。为了这个叉子,我做了一些必要的工作 tox+travis ci matrix适用于所有受支持的python+django版本。 在许多情况下,上述几种方法都缺少各种叉子。
找到虫子了吗?不支持的东西?
我怀疑后端的一些存储引擎不受支持 很长一段时间了。我个人只需要S3存储后端,但是 欢迎报告(特别是)其他一些程序的修补程序和测试 后端。
问题通过github问题在项目问题页上跟踪
文档
django storages的原始文档位于http://django-storages.readthedocs.org/" rel="nofollow">http://django-storages.readthedocs.org/。 请继续关注即将到来的文档更新。
贡献
- 检查项目中是否存在未解决的问题 问题页或打开新问题以开始有关功能或错误的讨论。
- 从github上的django storages存储库开始进行更改。
- 添加一个测试用例以显示bug已修复或功能已实现 正确。
- 打扰我直到我能合并你的请求。还有,别忘了加上 你自己去找作者
Django存储更改日志
1.3.3(2017-06-27)
- 显示指示新命名空间的警告并将自述文件更新为指向 在新的套餐中。
1.3.2(2016-01-26)
- 修复由于未关闭后端中的基础临时文件而导致的内存泄漏( \106 )谢谢@kmmbvnr
- 生成 s3botostorage 的URL时,允许轻松指定自定义到期时间( \96 )谢谢@mattbriancon
- 当空路径('')传递到 存储器时,检查bucket是否存在。在 s3botostorage中存在- 这可以防止在Django 1.9.1上运行 collectatic -c 时崩溃(在 \112 中修复)。闪电战
1.3.1(2016-01-12)
1.3(2015-08-14)
- 放弃对django 1.5和python2.6的支持
- 删除以前不推荐的MongoDB后端
- 从s3boto存储中删除以前不推荐的 解析扩展的
- 添加对django 1.8+的支持( \36 )
- 添加S3BOTO后端的AWS S3 U Proxy_主机和AWS S3 U Proxy_端口设置( \41 )
- 修复apache_libcloud中的python3k compat问题( \52 )
- 修复google存储后端不尊重gs-is-gzipped设置( \51 , \60 )谢谢@stmos
-
将ftp
\u name 属性重命名为 name 这正是django 文件 api所期望的( \70 ) - 将storagemixin放在继承中的第一位,以保持与旧版本django的向后兼容( \63 )
1.2.3(2015-03-14)
- 各种ftp后端修复程序(fix exists ,add modified\u time ,remove call to non-existent function)(删除对不存在函数的调用)( ;26 )
- 显然这一年改为2015年
1.2.2(2015-01-28)
1.2.1(2014-12-31)
1.2(2014-12-14)
- 将text/javascript mimetype添加到s3botostorage gzip允许的默认值中
- 添加对S3botoStorage和Apachelibcloud存储中Django 1.7迁移的支持( \5 , \8 )
- Python3K(3.3+)现在可用于S3boto后端( 4 )
- 删除旧版S3存储( 1 )
- 删除Mosso文件后端( \2 )
注意 :1.1.9版是Django Storages在fork之后的第一个版本。 它表示中原始Django存储的当前(2014-12-08)状态 无需额外更改的主控形状。这是代码库的第一个版本 自2013年3月起。
1.1.9(2014-12-08)
- 用pull请求修复python3的语法
- 支持通过pull请求将内容类型从文件对象推送到gridfs
- 支持通过pull请求将区域传递给libcloud驱动程序
- 句柄尾部斜杠路径修复 188 通过拉请求修复 85
- 在s3botofile pull请求中使用spooledtemporaryfile保存内存
- 猜测s3botostoragefile的内容类型,方法与save()相同在s3botostorage中是
- 在s3botostorage pull request中从url传递头和响应头以生成url
- 添加了aws_s3_主机、aws_s3_端口和aws_s3_使用_ssl设置来指定主机、端口,并且在拉取请求中是安全的。
下面的所有内容以前都是在django storages下的pypi上发布的
1.1.8(2013-03-31)
- 修复了关于日期解析、运行collectStatic时的valueerror的 \156
- 正确处理boto dev版本解析
- 使sftp url可访问,现在使用settings.media_url而不是sftp://
1.1.7(2013-03-20)
- 现在,通过使用boto的list()方法的prefix参数,可以防止在s3上列出大型存储桶
- 对Microsoft azure存储的初始支持
- 在使用s3boto后端时,切换到使用boto的parse-ts-date解析器获取最后修改的信息
- s3boto和google存储后端中的固定密钥处理
- 说明谷歌存储后端缺少多部分上传
- 修正了使用aws时的seek()问题,该问题由darkness51和pull请求一起捕获。
- 对s3botostorage和gsbotostorage的改进
1.1.6(2013-01-06)
- 合并了jannis leidel的许多更改(主要是关于gzipping)
- Ian Lewis的固定测试
- jannis leidel增加了对google云存储后端的支持
- Dan Loewenherz更新了许可证文件,修复了带有拉请求的 133 44
- 设置用于Gerardo Curiel从文件上载部件的内容类型标题
- 将rewind参数传递给jannis leidel使用pull请求的boto的set_contents_from_file方法 45
- 修正了mathieu comandon使用pull请求的ftpstoragefile close()方法
- Oktay Sancak使用pull请求进行小重构 \48
- 下载时根据gavin wahl的内容编码取消压缩,并带有pull请求 \46
- 添加对Tobias McNulty的S3服务器端加密的支持,支持pull请求 17
- 向boto存储添加可选设置以生成与协议相关的URL,修复了 105
1.1.5(2012-07-18)
- 来自Freakboy3742 Keith Magee的合并Pull请求,对ApacheLibCloud后端和文档的改进
- 来自Atodorov的合并拉取请求 35 允许更精细的S3访问设置
- 在rackspace cloudfiles后端添加对ssl的支持
- 修复了S3boto后端中的listdir()方法,修复了存储/发布/57" rel="nofollow">57
- 在s3boto后端添加了安全连接的基本url测试
- 合并了来自alanjds的pull-request \20 ,修复了aws位置以"/"结尾时的可疑操作警告
- 已将文件缓冲区大小设置添加到S3BOTO后端
- 来自pendletongp的合并请求 30 ,解析 108 , 109 和 110
- 更新了modified_time()方法,使其不需要dateutil。修复 111
- 合并了来自chamal的pull请求,添加了apache libcloud后端
- 预加载s3元数据时,请确保在保存期间重置files键,以防止元数据过时
- 从tobias.mcnulty合并的pull请求 24 ,修复了s3boto后端在错误时区返回修改时间的错误
- 修复了hashpathstorage.location,使其不再使用settings.media\u root
- 从安装文件中删除下载URL,以便使用PYPI DIST
1.1.4(2012-01-06)
- 为Mosso后端添加了PendingDeprecationWarning
- 合并的请求从marcoala添加到sftp存储后端的设置。
- 合并的拉取请求从ryankack中修复删除远程媒体的hashpathstorage测试
- 合并的pull请求 10 from key,添加对django mongodb engine 0.4.0或更高版本的支持,修复gridfs文件删除错误
- 修正了S3botoStorage调用modified_time()时的性能问题
- 添加了S3后端的弃用警告,参考 \40
- 修复了cloudfiles_connection_kwargs导入错误,修复了 78
- 切换到Sphinx文档,将官方文档设置为http://django-storages.rtfd.org/" rel="nofollow">http://django-storages.rtfd.org/
- hashpathstorage现在使用self.exists,修复了
1.1.3(2011-08-15)
- 创建了这个可爱的更改日志
- 修正了在cloudfiles backend中导入stringio的错误
- 合并了" rel="nofollow">拉取请求5:hashpathstorage path bug