我在 Heroku 上部署了一个 Ruby on Rails 应用程序,我意识到它们有一个只读文件系统 ( http://docs.heroku.com/constraints#read-only-filesystem )。例如,这意味着我无法在本地缓存图像。我正在使用一个名为“Rio”(Ruby 输入/输出)的 Ruby gem,它可以让我将文件保存到我的 /public/images 目录中。有没有允许这样做的好主机?具体来说,我在看 Rackspace Cloud。在我尝试部署其他地方之前提前知道真的很有帮助!
4 回答
我刚刚在 Google 上搜索“免费 ruby 托管”,结果很多。我建议浏览其中的一些。
更新:我刚刚意识到 Heroku 名列榜首,但还有很多其他的。
我承认我不够勤奋,无法检查每个人是否允许您写入他们的文件系统。
我认为没有必要在“云”产品之后争先恐后。“云”解决了您(还没有)的问题。“云”使您的应用程序“无限”可扩展,如果您把它做得很大,您的网站会被 SlashDotted 或其他任何东西。
您正在寻找的是从便宜到免费的托管,这是由“做”虚拟托管(将很多人放在一个物理盒子上以降低每个人的成本)或为可怜的开源开发人员提供免费托管的提供商提供的。
如果您想使用 Heroku,一种解决方案是不要在它们的位置托管图像。但在亚马逊。
您的应用程序可以对图像执行必要的操作,然后将它们发送到 Amazon S3 平台。
然后,当您想要显示图像时,您可以在亚马逊上链接到它。
Paperclip允许您非常轻松地将图像发送到 S3。
您无需切换主机即可完成此操作。
使用 Heroku,您可以写入 RAILS_ROOT/tmp 目录。它们只是不能保证在请求之间停留,因为可以从不同的 dyno 提供不同的请求,并且 tmp 目录会定期清除。
因此,您可以将图像提取到该目录,进行任何您需要的处理,然后将它们上传到 S3(如果您还没有使用它,我建议您使用 Delayed::Job)。
我不确定heroku,但要回答您关于Rackspace cloudFiles的问题,cloudfiles没有公开块存储,而只是一个用于上传/检索/等......文件的API。
有人认为,至少在 Linux/Macosx 上,一些保险丝包装器会将您的云文件公开为文件系统:
https://github.com/redbo/cloudfuse/
还有 JungleDisk,它对云文件很严格,但它是一个完整的基础设施。