每次我进行网站推送时,有没有一种自动方法将我所有的javascript/css/图像推送到s3?

Is there an automated way to push all my javascript/css/images to s3 everytime I do a website push?

提问人:Andrew G. Johnson 提问时间:1/18/2012 更新时间:1/18/2012 访问量:166

问:

因此,我正在将主要站点的所有缩略图移动到 S3,现在我正在考虑如何始终如一地将所有为实际站点提供支持的 CSS/JS/图像放入其中。第一次上传所有内容很容易,但我正在尝试想出一种方法,每次我推送到生产环境时,都以某种方式自动化该过程。

有没有人有什么聪明的方法可以做到这一点?

亚马逊-S3

评论


答:

0赞 Gabriel Sosa 1/18/2012 #1

我曾经使用 s3sync 来比较和更新资产,然后使用 bash 文件来遍历我的文件

这很有效,但是当要比较的点赞数量(比如说数千个)变得很大时,这个过程开始变得非常缓慢。如果你有一个小型架构(就资产而言),这将可以解决问题

为了更好地做到这一点,我会推荐 capistrano 或其他一些帮助您部署的助手......这样你就可以一次运行。

  • 上传资产
  • 部署文件

另一方面,您可以查看 cloudfront(亚马逊的 CDN)并使用 ORIGIN 进行设置。这样,您就不必担心将文件上传到 S3,因为它们会按需自动拉取。这种方法的缺点是,如果您需要更新文件并保持相同的名称(也就是使对象过期),则会进行缓存......您可以在 CloudFront 中执行此操作,但需要一个脚本来执行该任务。

根据流量(当然还有其他因素),一条或另一条路径最适合。