我正在尝试允许用户上传在heroku上运行的django应用程序的文件,并且遇到了一些问题。在我的开发环境中(使用django开发服务器),我将其设置为允许用户上传文件(小图像/徽标)。一切都很好。
当我尝试在heroku上运行它,甚至在使用gunicorn(而不是django开发服务器)的开发服务器上运行它时,用户无法上传文件。我知道通常最好使用类似Amazon S3的东西,但是由于文件相对较小,我认为直接在heroku上启动可能会有效。
据我所知,我可以上传文件与manage.py collectstatic一起使用,但这不是问题,因为上传的文件实际上从未上传过。我没有发现任何可以看到的错误。
我想要实现的目标是什么?我是否应该专注于尝试将其与S3一起使用?现在看来我的需求有点令人生畏,但我愿意接受任何建议或帮助。
谢谢,
编辑: 它似乎只能在我的虚拟环境之外工作。无论是否在虚拟环境中使用gunicorn都无关紧要。
答案 0 :(得分:3)
我认为你应该把重点放在S3这样的东西上,作为程序执行过程中创建的资产的外部存储。 Heroku对每个dyno使用ephemeral filesystem,因此即使它们很小,也肯定不会上传文件。