跳转到主要内容

支持Django中的多种存储(S3、MogileFS等)。

项目描述

这个库被指定为django-storages的官方继任者(截至2016年2月)。请更新您的需求文件,以便指向django-storages。

所有开发现在都在https://github.com/jschneier/django-storages进行。

django-storages

Build Status PyPI Version

安装

从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/。请关注即将推出的文档更新。

贡献

  1. 在项目问题页面 检查开放的问题 或创建一个新问题以开始关于功能或错误的讨论。

  2. 在 GitHub 上 fork django-storages 仓库 以开始修改。

  3. 添加一个测试用例以证明错误已修复或功能已正确实现。

  4. 不断催促我合并您的 pull request。同时,别忘了将自己添加到 AUTHORS 中。

django-storages 变更日志

1.3.3 (2017-06-27)

  • 显示新命名空间的警告,并更新 README 以指向新包。

1.3.2 (2016-01-26)

  • 修复 s3boto 后端中未关闭底层临时文件导致的内存泄漏(#106),感谢 @kmmbvnr

  • 在为 S3BotoStorage 生成 URL 时轻松指定自定义过期时间(#96),感谢 @mattbriancon

  • 当在 S3BotoStorage 中将空路径('')传递给 storage.exists 时检查存储桶的存在 - 这防止了在运行 collecstatic -c 时 Django 1.9.1 的崩溃(#112),在 #116 中修复,感谢 @xblitz

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_HOSTAWS_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

  • 处理尾部斜杠路径修复#188由pull-request #85修复

  • 在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后端的支持

  • Dan Loewenherz更新了许可文件,修复了#133,并通过pull-request #44解决

  • 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设置

  • 合并了pendletongp从#30提交的pull request,解决了#108#109#110

  • 更新了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路径错误。

项目详情


下载文件

为您的平台下载文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

django-storages-redux-1.3.3.tar.gz (215.3 kB 查看哈希)

上传日期

构建分发

django_storages_redux-1.3.3-py2.py3-none-any.whl (51.9 kB 查看哈希)

上传日期 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面