ruby-on-rails - 有人知道在 Amazon S3 上存储 Rails 页面缓存的简单方法吗?

标签 ruby-on-rails ruby rubygems

我正在寻找一种简单且自动化的方法来将页面缓存存储在 S3(当然还有云端)上。我知道有一个插件可以使用片段缓存执行此操作,但在我自己创建它之前,我想利用它这里的集体智慧:)

编辑:为了让自己更清楚,我不希望使用 S3 来提供文件,而是使用 CloudFront CDN。

最佳答案

要将某些内容放入 CloudFront,您必须先将其放入 S3。参见 Amazon's introduction对于所有步骤。基本上,您将文档放在 S3 上的存储桶中,然后进行 API 调用以注册您的存储桶以进行分发(您使用他们提供的 perl 脚本执行此操作)。届时,他们会将您存储桶中的内容传输到边缘服务器以进行高性能分发。您可以每小时更改一次存储桶的内容。

无论如何,为了使用 CloudFront,您真正需要做的是将呈现页面的内容导入 S3。启动并运行分配后,这就是您在 CloudFront 中管理内容的方式。

在 S3 中管理缓存的最简单方法可能是为您的缓存创建一个模型并使用 attachment_fu plugin将页面内容存储在 s3 中。然后,您可以使用 ActiveRecord's Observer functionality根据您的应用程序使缓存失效并重新填充。唯一其他棘手的一点是进入 ActionView 以访问呈现页面的结果,但我敢打赌您可以从默认页面缓存系统本身中提取一些代码。

如果您真的愿意,您可以将所有这些功能打包到一个插件中,这样您和其他人就可以轻松地跨应用程序重复使用。

关于ruby-on-rails - 有人知道在 Amazon S3 上存储 Rails 页面缓存的简单方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/483869/

相关文章:

ruby-on-rails - HABTM模型关系更新 Action 请求参数过滤

mysql - 需要从SQLite3切换到MySQL,并且想用MySQL进行部署

mysql - Ruby Gem Mysql Mac 10.6.8

ios - Pod init 或 pod update 出现以下错误

MySQL Rails 迁移错误 : "Error on rename of schema_migration (errno: -1)"

ruby - 我如何在 Jekyll 项目中包含 font-awesome-sass gem

ruby-on-rails - 有条件地从 rails 表单中排除字段

html - Rails sanitizer : Allow certain styles in style attribute

ruby-on-rails - OmniAuth OAuth2 如何访问策略-> 客户端?这样我就可以刷新 token ?

Ruby:测试未​​运行