在 S3 或 CDN 中使用 Express 提供静态文件,并在部署中使用哈希键和同步

Serving static files with Express in S3 or CDN with hask key and sync in deploy

我需要知道如何解决概念问题。

我已经在 AWS 中部署了一个 Express - Node.js Web 应用程序,带有一个负载均衡器和一些 EC2 实例(一切正常)。我将图像上传到 S3,我想将我的 JS 和 CSS 文件上传到 S3 或 CDN。

当我部署一个新版本时,我向我的静态文件(CSS 和 JS)添加了一个像这样的 hask 键查询字符串参数:

<script src="/public/assets/myscript.js?version=20161014"></script>

但是我想改成这样:

<script src="https://s3-eu-west-1.amazonaws.com/mybucket/assets/myscript.js?version=20161014"></script>

或更好:

<script src="https://mycustomname.cloudfront.net/assets/myscript.js?version=20161014"></script>

我的问题是:

我如何重新部署我的 expressjs 应用程序并同时将我对 JS 的修改上传到 S3 和 CSS 以同步客户端代码和服务器代码?

额外信息:我正在使用 AWS CodeDeploy Deployments 使我的服务器代码部署在许多 EC2 实例中正常工作,并且我安装了 PM2 用于监控、集群管理和其他东西。

谢谢。

我认为您需要的是查询字符串缓存,我想这会有所帮助: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html