支持Django中的多种存储(S3、MogileFS等)。
项目描述
这个库被指定为django-storages的官方继任者(截至2016年2月)。请更新您的需求文件,以便指向django-storages。
所有开发现在都在https://github.com/jschneier/django-storages进行。
django-storages
安装
从PyPI安装就像这样做
pip install django-storages-redux
如果您想从源安装(可能master分支中有一个尚未发布的bug修复),那么您要寻找的魔法咒语是
pip install -e 'git+https://github.com/jschneier/django-storages.git#egg=django-storages'
完成之后,将storages添加到您的INSTALLED_APPS中,并将DEFAULT_FILE_STORAGE设置为您的选择的后端。例如,如果您想使用s3boto后端,您将设置
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
还有许多设置可用于控制每个存储后端的功能,请参阅文档以获取全面的列表。
关于
django-storages曾经(现在也是)是一个项目,旨在在一个库中提供各种存储后端。这是它的维护版本,兼容Python 3。分叉的原因将在下一节中说明。
目前唯一经过测试的Python 3兼容后端是S3 Boto,但其中一些应该没有问题地工作(hashpath、symlink、overwrite)。
此库与Django >= 1.7兼容。它也应该与1.6.2+兼容,但不提供任何保证。
为什么分叉?
原始的 django-storages 的 BitBucket 仓库自 2014 年 3 月以来没有应用任何提交(现在是 2014 年 12 月),自 2013 年 3 月以来没有 PyPi 发布,尽管在那一年中已经应用了大量修复。django-storages 项目(特别是 S3BotoStorage 部分)得到了社区的大力支持,并且我需要一个兼容 Python3 的版本。
目前存在的所有兼容 Python3 的分支(目前有几个)都存在一些不足。这可能是它们没有发布到 PyPi,没有持续测试,没有应用 Bitbucket 仓库自分支以来的许多重要修复,或者不支持较老的 Python 和 Django 版本(这对于发现错误和维持大型社区至关重要)。对于这个分支,我已经完成了必要的少量工作,以便为所有支持的 Python + Django 版本启动 tox + travis ci 矩阵。在许多情况下,各种分支都缺少上述某些方面。
发现错误?不支持的功能?
我怀疑 backends/ 中的一些存储引擎已经不支持很长时间了。我只需要 S3Storage 后端,但我欢迎对其他后端(特别是)的错误报告、补丁和测试。
问题通过 GitHub 上的 项目问题页面 跟踪。
文档
django-storages 的原始文档位于 http://django-storages.readthedocs.org/。请关注即将推出的文档更新。
贡献
在项目问题页面 检查开放的问题 或创建一个新问题以开始关于功能或错误的讨论。
在 GitHub 上 fork django-storages 仓库 以开始修改。
添加一个测试用例以证明错误已修复或功能已正确实现。
不断催促我合并您的 pull request。同时,别忘了将自己添加到 AUTHORS 中。
django-storages 变更日志
1.3.3 (2017-06-27)
显示新命名空间的警告,并更新 README 以指向新包。
1.3.2 (2016-01-26)
1.3.1 (2016-01-12)
几个 Azure 存储修复[将内容类型传递到 Azure,处理分块内容,修复 url](#45),感谢 @erlingbo
添加对 Dropbox(dropbox)存储后端的支持,感谢 @ZuluPro(#76)
对 apache_libcloud 后端的几个修复[返回 .read 要求的字节数,使 .name 非私有,不要初始化到空的 BytesIO 对象](感谢 @kaedroho(#55)
修复 s3boto 后端中的多部分上传不尊重 AWS_S3_ENCRYPTION(#94),感谢 @andersontep
自动gzip SVG文件,感谢@comandrei(《https://github.com/jschneier/django-storages/pull/100》#100)
1.3 (2015-08-14)
取消对Django 1.5和Python 2.6的支持
移除之前已弃用的mongodb后端
从s3boto存储中移除之前已弃用的parse_ts_extended
添加对Django 1.8+的支持(《https://github.com/jschneier/django-storages/pull/36》#36)
为s3boto后端添加AWS_S3_PROXY_HOST和AWS_S3_PROXY_PORT设置(《https://github.com/jschneier/django-storages/pull/41》#41)
修复apache_libcloud中的Python3K兼容性问题(《https://github.com/jschneier/django-storages/issues/52》#52)
修复Google Storage后端不尊重GS_IS_GZIPPED设置的问题,感谢@stmos(《https://github.com/jschneier/django-storages/pull/51》#51,《https://github.com/jschneier/django-storages/pull/60》#60)
将FTP的_name属性重命名为name,这是Django File api所期望的(《https://github.com/jschneier/django-storages/pull/70》#70)
将StorageMixin放在继承顺序的最前面以保持与旧版本Django的向后兼容(《https://github.com/jschneier/django-storages/pull/63》#63)
1.2.3 (2015-03-14)
FTP后端的各种修复(修复exists,添加modified_time,删除对不存在函数的调用)(《https://github.com/jschneier/django-storages/pull/26》#26)
显然,年份变成了2015
1.2.2 (2015-01-28)
移除始终显示所有警告的过滤器(《https://github.com/jschneier/django-storages/pull/21》#21)
以wheel格式发布包
避免安装期间的资源警告(《https://github.com/jschneier/django-storages/issues/20》#20)
使S3BotoStorage可解构(之前只有S3BotoStorageFile是可解构的)(《https://github.com/jschneier/django-storages/pull/19》#19)
1.2.1 (2014-12-31)
修复当AWS_PRELOAD_METADATA=True时,storage.modified_time在新文件上崩溃的问题(《https://github.com/jschneier/django-storages/pull/11》#11,《https://github.com/jschneier/django-storages/issues/12》#12,《https://github.com/jschneier/django-storages/pull/14》#14)
弃用并发出关于parse_ts_extended的警告
弃用mongodb后端 - django-mongodb-engine现在附带了它自己的存储后端
1.2 (2014-12-14)
将text/javascript MIME类型添加到S3BotoStorage gzip允许的默认值
为S3BotoStorage和ApacheLibCloudStorage添加对Django 1.7迁移的支持(《https://github.com/jschneier/django-storages/pull/5》#5,《https://github.com/jschneier/django-storages/pull/8》#8)
Python3K(3.3+)现在可用于S3Boto后端(《https://github.com/jschneier/django-storages/pull/4》#4)
移除遗留的S3存储(《https://github.com/jschneier/django-storages/issues/1》#1)
移除mosso文件后端(《https://github.com/jschneier/django-storages/issues/2》#2)
注意:版本1.1.9是分支后的第一个django-storages版本。它代表了原始django-storages在master中的当前状态(2014-12-08),没有任何额外的更改。这是自2013年3月以来代码库的第一个发布。
1.1.9 (2014-12-08)
使用pull-request修复Python3的语法#91
使用pull-request支持从File对象将内容类型推送到GridFS#90
使用pull-request支持将区域传递给libcloud驱动程序#86
在S3BotoFile中,使用SpooledTemporaryFile来节省内存(pull-request #69)
以与S3BotoStorage中的_save()相同的方式猜测S3BotoStorageFile的内容类型
在S3BotoStorage的pull-request中,从url传递header和response_headers到generate_url #65
在pull-request中添加了AWS_S3_HOST、AWS_S3_PORT和AWS_S3_USE_SSL设置,用于指定主机、端口和是否安全 #66
以下内容已在PyPi上的django-storages中发布
1.1.8 (2013-03-31)
修复了关于日期解析的问题,当运行collectstatic时出现了ValueError #156
正确处理boto开发版本解析
使SFTP URL可访问,现在使用settings.MEDIA_URL而不是sftp://
1.1.7 (2013-03-20)
使用boto的list()方法的prefix参数防止在S3上列出大型存储桶
初步支持Windows Azure存储
当使用S3boto后端时,切换到使用boto的parse_ts日期解析器获取最后修改信息
修复了S3boto和Google Storage后端中的键处理问题
考虑到Google Storage后端中缺少分片上传
darkness51通过pull-request #50修复了使用AWS_IS_GZIPPED时seek()的问题
改进了S3BotoStorage和GSBotoStorage
1.1.6 (2013-01-06)
合并了来自Jannis Leidel的许多更改(主要关于gzip压缩)
Ian Lewis修复了测试
Jannis Leidel添加了对Google Cloud Storage后端的支持
Gerardo Curiel设置了Content-Type头,用于上传_part_from_file
Jannis Leidel通过pull-request #45将rewind参数传递给Boto的set_contents_from_file方法
Mathieu Comandon通过pull-request #43修复了FTPStorageFile close()方法
Oktay Sancak进行了轻微重构,通过pull-request #48
Gavin Wahl基于pull-request #46在下载时根据Content-Encoding进行解压
Tobias McNulty通过pull-request #17添加了对S3服务器端加密的支持
添加了一个可选设置到boto存储,以生成协议相关URL,修复了#105
1.1.5 (2012-07-18)
合并了freakboy3742和Keith-Magee从#36提交的pull request,改进了Apache Libcloud后端和文档
合并了atodorov从#35提交的pull request,允许更精细的S3访问设置
添加了对Rackspace Cloudfiles后端SSL的支持
修复了s3boto后端中的listdir()方法,修复了#57
为s3boto后端的safe_join添加了基本URL测试
合并了alanjds从#20提交的pull request,修复了如果AWS_LOCATION以‘/’结尾时的SuspiciousOperation警告
为s3boto后端添加了FILE_BUFFER_SIZE设置
更新了modified_time()方法,使其不需要dateutil。修复了#111
合并了chamal从#16提交的pull request,添加了Apache Libcloud后端
在预加载S3元数据时,确保我们在保存时重置文件键,以防止过期的元数据。
合并了来自tobias.mcnulty的拉取请求#24,修复了s3boto后端返回的modified_time位于错误时区的问题。
修复了HashPathStorage.location,不再使用settings.MEDIA_ROOT。
从设置文件中删除download_url,以便使用PyPI发行版。
1.1.4 (2012-01-06)
为mosso后端添加了PendingDeprecationWarning。
合并了来自marcoala的拉取请求#13,为SFTP存储后端添加了SFTP_KNOWN_HOST_FILE设置。
合并了来自ryankask的拉取请求#12,修复了删除远程媒体的HashPathStorage测试。
合并了来自key的拉取请求#10,添加了对django-mongodb-engine 0.4.0或更高版本的兼容性,修复了GridFS文件删除错误。
修复了S3BotoStorage调用modified_time()时的性能问题。
为s3后端添加了弃用警告,参见#40。
修复了CLOUDFILES_CONNECTION_KWARGS导入错误,修复了#78。
切换到sphinx文档,在http://django-storages.rtfd.org/上设置了官方文档。
HashPathStorage现在使用self.exists,修复了#83。
1.1.3 (2011-08-15)
创建了这个可爱的变更日志。
修复了#89:CloudFiles后端中损坏的StringIO导入。
合并了pull request #5:HashPathStorage路径错误。
项目详情
下载文件
为您的平台下载文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
哈希 for django_storages_redux-1.3.3-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e0d19ac48bc2e75c807f98341a7937ad24ac4de1b0c9bbdfec5945d30a63220c |
|
MD5 | dd9a217f3a2564f6c7cf2f804212affc |
|
BLAKE2b-256 | 7dc3a0c2573fa5f3d0bb88df7ee67139935ea8e8fc43cb85430571fa9cacd9e8 |