是否有适用于 Amazon S3 的 Python3 兼容 Django 存储后端?
Posted
技术标签:
【中文标题】是否有适用于 Amazon S3 的 Python3 兼容 Django 存储后端?【英文标题】:Is there a Python3 compatible Django storage backend for Amazon S3? 【发布时间】:2013-04-04 03:40:32 【问题描述】:我正在用 Python 3.3.1 构建一个 Django 应用程序,以部署在 Heroku 上。由于其临时文件系统,Heroku 无法从本地文件系统提供应用程序的静态文件,因此它们需要位于其他地方,而我想将它们放在 Amazon S3 的位置。
我找到了许多有用的教程(Deploying Django on Heroku 等),所有这些教程都使用 django-storages 应用程序和 boto 来收集静态文件并将它们存储在 S3 上。不幸的是,将 boto 移植到 Python3 的工作仍未完成。 django-storages 可以使用其他 S3 存储提供程序(Apache Libcloud 或简单的 Amazon S3 Python 库),但 django-storages 本身也不能在 Python3 上运行。
我还看到了将 collectstatic 调用添加到 Heroku 应用程序的 Procfile 的黑客行为,它确实将文件放置在 Django 应用程序可以使用的位置,但它会减慢部署速度;每次部署应用程序时都必须收集和上传文件。无论如何,Heroku dynos 不太适合提供静态文件,我最终也想存储用户数据,这将需要像 S3 这样的非 Heroku 数据存储。
除了 django-storages 中提供的存储后端之外,还有与 Python3 兼容的 Django 存储后端吗?还是我暂时坚持使用 Python 2.7?
【问题讨论】:
【参考方案1】:django-storages-p3 看起来很有希望。试试看,让我知道:D。
【讨论】:
我设法使用这个版本从 Django 上传了一个文件,所以到目前为止它似乎可以工作。必须安装它via the repo directly, though 和install a Py3-compatible boto。【参考方案2】:django-storages-redux
(now just django-storages
) 与 boto
一起为我工作得非常好,s3
功能现在支持 Python 3。
【讨论】:
以上是关于是否有适用于 Amazon S3 的 Python3 兼容 Django 存储后端?的主要内容,如果未能解决你的问题,请参考以下文章
适用于 Amazon S3 的基于开源或付费 JavaScript 的文件管理器 [关闭]
Amazon S3 CORS 适用于 HTTP,但不适用于 HTTPS
如何使用适用于 Node.js 的 AWS 开发工具包将 Amazon S3 中的所有对象从一个前缀复制/移动到另一个前缀