代码之家  ›  专栏  ›  技术社区  ›  Scott Miller

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

  •  2
  • Scott Miller  · 技术社区  · 17 年前

    我正在寻找一种简单而自动化的方法来在S3(当然还有cloudfront)上存储页面缓存。我知道有一个插件可以用片段缓存来实现这一点,但在我自己创建之前,我想在这里挖掘集体智慧:)

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

    2 回复  |  直到 17 年前
        1
  •  2
  •   Greg Borenstein    17 年前

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

    无论如何,为了使用CloudFront,您真正需要做的是将渲染页面的内容导入S3。一旦你启动并运行了你的发行版,这就是你在CloudFront中管理内容的方式。

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

    如果你真的想,你可以把所有这些功能打包成一个插件,这样你和其他人就可以很容易地在应用程序之间重复使用。

        2
  •  0
  •   Otto    17 年前

    我读了标题,想告诉你亚马逊几周前就开始做CDN了。但很明显,你已经知道了。 :)

    有一个Python包看起来像是封装了CloudFront, botto 但我只能找到这些。

    我想你是第一个。..去启动它。告诉我它在哪里,我可能会叉它。