【发布时间】: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?
【问题讨论】:
标签: django heroku python-3.x amazon-s3