12

我正在用 Python 3.3.1 构建一个 Django 应用程序,以部署在 Heroku 上。由于其临时文件系统,Heroku 无法从本地文件系统提供应用程序的静态文件,因此它们需要位于其他地方,而我想将它们放在 Amazon S3 中。

我找到了许多有用的教程(在 Heroku 上部署 Django等),所有这些教程都使用 django-storages 应用程序和 boto 来收集静态文件并将它们存储在 S3 上。不幸的是,将 boto 移植到 Python3 的工作仍未完成。django-storages 可以使用其他 S3 存储提供程序(Apache Libcloud 或简单的 Amazon S3 Python 库),但 django-storages 本身也不能在 Python3 上运行。

我还看到了向 Heroku 应用程序的 Procfile 添加 collectstatic 调用的黑客行为,它确实将文件放在了 Django 应用程序可以使用的位置,但它会减慢部署速度;每次部署应用程序时都必须收集和上传文件。无论如何,Heroku dynos 不太适合提供静态文件,我最终也想存储用户数据,这将需要像 S3 这样的非 Heroku 数据存储。

除了 django-storages 中提供的那些之外,Django 是否有兼容 Python3 的存储后端?还是我暂时坚持使用 Python 2.7?

4

2 回答 2

3

django-storages-redux(现在只是django-storages对我来说非常好用boto,现在 Python 3 支持它的s3功能。

于 2014-12-10T23:30:21.330 回答
2

django-storages-p3看起来很有希望。试一试,让我知道:D。

于 2013-09-09T16:17:02.077 回答