S3网站部署工具
s3-deploy-website的Python项目详细描述
这是一个将静态网站上传到s3的部署工具。如果cloudfront是 用于托管网站,上传的文件可以自动 在cloudfront分布中无效。前缀树用于 由于只有有限数量的空闲 每个月都有失效
配置存储在如下的yaml文件中:
site:_sites3_bucket:example.comcloudfront_distribution_id:XXXXXXXXXXXcache_rules:-match:"/assets/*"maxage:30 days-match_regexp:'^assets/image-\d{3}-.*\.png$'maxage:90 days-match:"/css/*"maxage:30 days-match:"*"maxage:1 hour
site是静态网站相对于位置的目录 配置文件的。例如,jekyll将生成静态站点 在上面指定的_site目录中如果保存配置 文件名为.s3_website.yaml,您只需从 同一目录:
$ cd jekyll-site/
$ ls .s3_website.yaml
.s3_website.yaml
$ s3-deploy-website
凭证
可以通过环境变量提供aws凭据 AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY。
$ exportAWS_ACCESS_KEY_ID=XXXXXX $ exportAWS_SECRET_ACCESS_KEY=XXXXXX $ s3-deploy-website
它们也可以通过boto的各种配置文件提供 阅读。
配置文件
- 站点
- 要上载的静态内容的目录(相对于 配置文件的位置(例如,jekyll站点的_site。
- s3_桶
- 要上载文件的s3存储桶的名称。你必须允许 操作s3:GetObject,s3:PutObject,s3:DeleteObject和 s3:ListBucket在桶和钥匙上。 arn:aws:s3:::example.com和arn:aws:s3:::example.com/*。
- s3减少了冗余
- 指示是否应上载文件的可选布尔值 到reduced redundancy存储器。
- cloudfront_分布id
- 上载新文件后要失效的CloudFront分发。只有 已更改的文件将无效。你必须允许 操作cloudfront:CreateInvalidation.
- 缓存规则
- 用于确定上载文件的缓存配置的规则列表。 match键指定规则应用于的模式。这使用 全局样式匹配(使用*和?)也可以执行匹配 通过使用match_regexp使用正则表达式。只有 将使用与给定密钥匹配的第一个规则。maxage键 指定缓存文件的时间。值应为数字 秒或字符串,如30 days、5 minutes, 30 seconds等。
- 端点URL
- (可选)用于设置BOTO3的自定义终结点: Boto3 Session reference
类似软件
.s3_website.yaml中的配置是受s3_website启发的,尽管 S3U网站支持的选项略有不同。
许可证
麻省理工学院。