我已经完成了2个涉及使用回形针进行图像上传的Rails应用程序。我刚才做的第一个在当地工作得很好,但是当我部署到Heroku时我遇到了问题;我意识到我需要使用AWS来启用图片上传。
我刚才做了那个项目。我最近开始了另一个项目,并试图结合类似的功能。在我尝试部署之前使用paperclip启用AWS之前,我只是想测试如果我尝试上传图像会发生什么。令我惊讶的是,它没有AWS!我希望能够理解为什么它第一次不起作用以及为什么它现在起作用。回形针如何在幕后使用heroku和rails?
答案 0 :(得分:4)
可能第一个应用程序托管在legacy Bamboo stack上,有一个read-only file system。
在new Cedar stack中,文件系统不再是只读的,因此上传不会失败。但是,您应该继续使用AWS或任何其他外部存储,因为Heroku会将您编译的应用程序分布在多台计算机上,并且无法保证图像可以从其他请求中看到。他们称之为ephemeral filesystem。
换句话说,使用Bamboo堆栈很容易理解您无法在文件系统上存储文件,因为您遇到了立即崩溃。使用Cedar,上传成功,但上传的图像将来无处可用。
故事的寓意是:您应该继续使用AWS或Heroku文件系统之外的任何其他存储。