我正在寻找一种简单且自动化的方法来在S3 (当然还有cloudfront)上存储页面缓存。我知道有一个插件可以通过片段缓存做到这一点,但在我自己创建它之前,我想在这里集思广益:)
编辑:为了让我自己更清楚,我并不打算使用S3来提供文件,而是使用CloudFront CDN。
发布于 2009-01-28 06:27:43
为了把一些东西放在CloudFront中,你必须首先把它放在S3中。有关所有步骤,请参阅Amazon's introduction。基本上,您将文档放在S3上的一个存储桶中,然后进行一个API调用来注册您的存储桶以进行分发(使用他们提供的perl脚本完成此操作)。此时,它们会将存储桶中的内容传输到边缘服务器,以实现高性能分发。您可以每小时更改一次存储桶中的内容。
无论如何,为了使用CloudFront,您真正需要做的是将呈现的页面的内容放到S3中。一旦您启动并运行您的发行版,这就是您在CloudFront中管理内容的方式。
在s3中管理缓存的最简单方法可能是为缓存创建一个模型,并使用attachment_fu plugin在S3中存储页面内容。然后,您可以使用ActiveRecord's Observer functionality来使缓存无效,并根据您的应用程序重新填充缓存。唯一的另一个棘手之处是进入ActionView来访问呈现页面的结果,但我敢打赌,您可以从默认页面缓存系统本身抄袭其中的一些代码。
如果你真的想这样做,你可以把所有这些功能打包到一个插件中,这样你和其他人都可以很容易地在应用程序中重用。
发布于 2009-01-27 16:56:50
我读了标题,打算告诉你亚马逊几周前就开始做CDN了。但显然,你已经知道这一点了。:)
有一个Python包,看起来像是包装了CloudFront,botto。但这就是我能找到的。
我想你是第一个...向前走,开始吧。告诉我它在哪里,我可能会分叉它。
https://stackoverflow.com/questions/483869
复制相似问题