我建立了一个应用程序,用户可以在其中上传他们的头像。我使用了回形针宝石,并且在本地计算机上一切正常。在Heroku上,一切正常,直到服务器重新启动为止。然后所有上传的图像消失。是否可以将它们保留在服务器上?
注意:我可能应该使用Amazon S3或Google Cloud之类的服务。但是,即使您要使用免费模式,这些服务中的每一项都需要信用卡或银行帐户信息。这是一个仅用于我的投资组合的小型应用程序,我宁愿避免发送该信息。
答案 0 :(得分:3)
否,这是不可能的。 Heroku's filesystem is ephemeral,并且无法使其持久化。每次dyno restarts,您都会丢失上传的内容。
如果要长期存储文件,则必须use an off-site file storage service like Amazon S3。
(从技术上讲,您可以将图像直接存储在数据库中,例如,以bytea
in Postgres的形式存储,但是我强烈建议不要这样做。效率不是很高,因此您必须担心如何将保存的文件提供给浏览器。使用S3或类似的东西。)