我使用我的服务器存储用户上传的图片。这很好,但是当我对代码进行更改时,它会反映这一点并删除存储在服务器上的图片。
git push heroku master
如何防止这种情况?
答案 0 :(得分:7)
Heroku的文件系统是只读的,因此您不能也不应该将上传的文件存储在您的dynos中。
如果你考虑一下,这是有道理的。您可以让多个dynos运行您的应用程序,这样您就无法保证哪个dyno正在接收图片。
无论如何,Dynos应该是无状态的,因此您可以轻松地向上或向下扩展应用程序。
在Heroku上执行文件上传的首选方法是按照DevCenter中的说明使用Amazon S3。
答案 1 :(得分:3)
像leonardoborges一样,Heroku的文件系统是只读的。由于您使用的是rails,因此您可以使用像carrierwave这样的gem,它可以帮助您在应用程序中处理图像时使用Amazon S3轻松设置图像。
其他有用的链接 Carrierwave Railscast