我正在寻找一种简单且自动化的方式来将页面缓存存储在 S3(当然还有云端)上。我知道有一个插件可以使用片段缓存执行此操作,但在我自己创建它之前,想利用集体智慧这里 :)
编辑:为了让自己更清楚,我不希望使用 S3 来提供文件,而是使用 CloudFront CDN。
我正在寻找一种简单且自动化的方式来将页面缓存存储在 S3(当然还有云端)上。我知道有一个插件可以使用片段缓存执行此操作,但在我自己创建它之前,想利用集体智慧这里 :)
编辑:为了让自己更清楚,我不希望使用 S3 来提供文件,而是使用 CloudFront CDN。
为了在 CloudFront 中放置一些东西,您必须首先在 S3 中拥有它。有关所有步骤,请参阅Amazon 的介绍。基本上,您将文档放在 S3 上的存储桶中,然后进行 API 调用以注册您的存储桶以进行分发(您使用他们提供的 perl 脚本来执行此操作)。那时,它们会将您存储桶的内容传输到边缘服务器以进行高性能分发。您可以每小时更改一次存储桶的内容。
无论如何,为了使用 CloudFront,您真正需要做的是将渲染页面的内容放入 S3。一旦您的分配启动并运行,这就是您在 CloudFront 中管理内容的方式。
在 S3 中管理缓存的最简单方法可能是为您的缓存创建一个模型并使用attachment_fu 插件将页面内容存储在 s3 中。然后,您可以使用ActiveRecord 的 Observer 功能来使缓存失效并根据您的应用程序重新填充缓存。另一个棘手的问题是进入 ActionView 以访问呈现页面的结果,但我敢打赌,您可以从默认页面缓存系统本身中复制一些代码。
如果您真的愿意,您可能可以将所有这些功能打包到一个插件中,这样您和其他人就可以轻松地在应用程序中重复使用。
我读了标题,并打算告诉你亚马逊几周前开始做 CDN。但很明显,你已经知道了。:)
有一个 Python 包,看起来像是包装了 CloudFront,botto。但这就是我能找到的全部。
我认为你是第一个...去开始吧。让我知道它在哪里,我可能会分叉它。