AWS Elastic Beanstalk / S3 / CloudFront Cache-Control Header

AWS Elastic Beanstalk / S3 / CloudFront Cache-Control Header

我有一个使用 AWS Elastic Beanstalk 部署的 Flask 应用程序。我使用 S3 进行存储,使用 CloudFront 作为 cdn。如何将 Cache-Control header 添加到 Elastic Beanstalk 应用程序提供的静态文件?

Elastic Beansstack 在涉及静态文件时采用非常简单的设置。基本上假设您将从服务器本身为他们提供服务。

大多数人和您一样,改用 S3 和 CloudFront,但不幸的是,这需要您手动部署这些静态文件(即没有 eb)。

如果您的静态文件变化不大,您可以手动将它们上传到您的 s3 源。但是编写脚本可能会更好。

我个人使用 Gulp 来管理我所有的静态文件。 Gulp 有两个方便的包可以部署到 S3,并设置缓存控件:

用 Boto 做同样的事情并不难,但 Gulp 还处理我的 CSS/JS 文件,包括创建缓存友好的部署名称(例如 app-1234.css)。我对 Elastic Beanstalk 的部署是:

gulp deploy  # Where Gulp processes CSS/JS/Images and uploads to S3/CF
eb deploy    # To deploy my python code

希望这对您有所帮助。