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

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

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

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

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

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

    为了在CloudFront中放置一些内容,您必须首先将其放在S3中。见 Amazon's introduction 所有的步骤。基本上,您将文档放在S3的一个桶中,然后进行API调用以注册桶以进行分发(您使用它们提供的Perl脚本进行此操作)。在这一点上,它们将桶中的内容传输到边缘服务器以实现高性能分发。你可以每小时换一次桶里的东西。

    无论如何,为了使用CloudFront,您真正需要做的是将渲染页面的内容放入S3。一旦您完成了分发和运行,这就是在CloudFront中管理内容的方法。

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

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

        2
  •  0
  •   Otto    16 年前

    我读了标题,打算告诉你亚马逊几周前就开始做内容交付网络(cdn)。但很明显,你已经知道了。:)

    有一个python包看起来像是包装了cloudfront, botto . 但我只能找到这些。

    我觉得你是第一个…去开始吧。让我知道它在哪里,我可能会把它叉起来。