部署版本化资产的策略(PHP 应用程序的资产到 Amazon S3)

Strategy to deploy versioned assets (for PHP app's assets to Amazon S3)

我目前使用 s3cmd.

部署 PHP 应用程序的静态资产

如果 Amazon S3 的资产发生变化(如 JavaScript 脚本),我将手动重命名它,以便新版本同步并由 Amazon Cloudfront 提供服务。

是否有将 PHP 应用程序的静态资产部署到 Amazon S3 的记录做法?我已经看到网站使用散列来引用其资产的特定部署版本。我想知道获取该哈希值(如 git 提交 SHA?)以供 Web 应用程序引用的方法。

我认为有效的方法是写入包含当前 SHA 的 stand-alone 配置文件,并从中读取以进行部署。

用当前进程更新 1

我希望使资产部署更加自动化:

我想这个问题没有具体的答案,但这里有一些事情。

  1. 如果您只想自动化您正在进行的手动工作,那么可能值得研究一些部署工具。 Capistrano 和 Magallanes 是我想到的两个名字,但您可以 google 来使用,我相信您会找到很多选择。

  2. Rails 框架建立在有最好的做事方式的理念之上。它还使用散列来对静态资产进行版本控制,并在运行时开箱即用。您可以考虑在您的案例中实施哈希。

  3. Grunt 是另一个您可以研究的自动化工具。我发现这个模块可能会派上用场 https://github.com/theasta/grunt-assets-versioning

对我来说,2、3、4 是您工作流程中的问题区域。每次手动重命名和更新代码听起来不太好。正如您所指出的,GIT 哈希值是唯一的,因此可能在部署期间将 GIT 哈希值附加到您的资产并将它们同步到 S3/Cloudfront ?