我正在构建一个用于在Heroku上部署的Python 3.3.1中的Django应用程序。由于其短暂的文件系统,Heroku无法从本地文件系统提供应用程序的静态文件,因此它们需要位于其他地方,而Amazon S3是我想放置它们的地方。
我找到了许多有用的教程(Deploying Django on Heroku等),所有这些教程都使用django-storages应用程序和boto来收集静态文件并将它们存储在S3上。不幸的是,将boto移植到Python3的工作仍然不完整。 django-storage可以使用其他S3存储提供程序(Apache Libcloud或简单的Amazon S3 Python库),但django-storage本身也不能在Python3上运行。
我也看到过hacks,它们会向Heroku应用程序的Procfile添加一个collectstatic调用,它会将文件放在Django应用程序可以使用的位置,但会减慢部署速度;每次应用程序部署时都必须收集和上载文件。 Heroku dynos不太适合提供静态文件,无论如何,我最终还想存储用户数据,这将需要像S3这样的非Heroku数据存储。
Django是否有与Python相容的存储后端,而不是django-storage中提供的那些?或者我暂时坚持使用Python 2.7?
答案 0 :(得分:3)
django-storages-redux
(now just django-storages
)非常适合与boto
一起使用,现在它的s3
功能支持Python 3。
答案 1 :(得分:2)
django-storages-p3看起来很有希望。试一试,让我知道:D。