我正在寻找一种简单且自动化的方法来将页面缓存存储在 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/