2013-04-11 49 views
12

我在Python 3.3.1中构建了一个Django应用程序,以部署在Heroku上。由于其短暂的文件系统,Heroku无法从本地文件系统提供应用程序的静态文件,因此它们需要位于其他位置,而Amazon S3则是我想放置它们的位置。Amazon S3是否有与Python3兼容的Django存储后端?

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

我也看到hacks在Heroku应用程序的Procfile中添加了collectstatic调用,它将文件放置在某处,可以被Django应用程序使用,但会减慢部署速度;每次应用程序部署时都必须收集并上传这些文件。无论如何,Heroku dynos并不适合提供静态文件,而且我最终还希望存储用户数据,这将需要像S3这样的非Heroku数据存储。

是否有Django以外的Python3兼容存储后端,而不是django-storage中提供的后端?或者我暂时坚持Python 2.7?

回答

2

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

+1

我设法使用这个版本从Django上传文件,所以它似乎工作到目前为止。不得不安装它[直接通过回购,但](https://github.com/coagulant/django-storages-py3)和[安装一个Py3兼容boto](http://stackoverflow.com/a/24725382/544059)。 – metakermit 2014-07-13 17:35:49