我正在用 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?