0

我试图弄清楚如何在可能的几个 Heroku dynos 之间共享一堆(阅读:数千个)静态 HTML 文件。

显然,测功机将具有单独的文件系统(更不用说它们是短暂的),因此那里似乎没有可行的解决方案。

生成这些页面将相当昂贵(并且可能会改变),所以我不想在每个测功机上频繁生成。

有没有办法设置 Rails/Heroku 在 S3 存储桶中查找 /public 目录?我不想将信息放入数据库,因为我想保持它完全静态并且可以通过 CDN 提供服务。

4

1 回答 1

0

在将数据写入 s3 方面,任何现有的 aws gem 都可以解决问题。如果我是你,我会看官方的 aws sdk 或雾。

使用雾,您可以使用类似的东西编写文件(假设storage是 Fog::Storage 对象)

storage.directories.new(:key => 'bucket_name').files.create(:key => 'filename', :body => data)

data 可以是字符串或 io 对象,例如文件。

你可以有一个向控制器发送请求的路由

storage.directories.new(:key => 'bucket_name').files.head(file_name)

查看文件是否存在。根据您的需要,您可能希望缓存文件存在的事实,这样您就不必每次都调用 s3。

于 2012-12-13T18:53:21.987 回答