s3 deploy website
1.0.0
这是用于将静态网站上传到S3的部署工具。如果使用CloudFront用于托管网站,则可以在CloudFront Distribution中自动无效上传的文件。前缀树用于最大程度地减少无效的数量,因为每月只有有限数量的免费无效。
该配置存储在这样的YAML文件中:
site : _site
s3_bucket : example.com
cloudfront_distribution_id : XXXXXXXXXXX
cache_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
则可以简单地从同一目录运行s3-deploy-website
:
$ cd jekyll-site/
$ ls .s3_website.yaml
.s3_website.yaml
$ s3-deploy-website
可以通过环境变量AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
提供AWS凭据。
$ export AWS_ACCESS_KEY_ID=XXXXXX
$ export AWS_SECRET_ACCESS_KEY=XXXXXX
$ s3-deploy-website
也可以通过BOTO读取的各种配置文件提供它们。
_site
)。s3:GetObject
, s3:PutObject
, s3:DeleteObject
和s3:ListBucket
和键,例如arn:aws:s3:::example.com
and and arn:aws:s3:::example.com/*
。cloudfront:CreateInvalidation
。match
键指定规则适用的模式。这使用球形匹配(与*
和?
)。也可以使用match_regexp
使用正则表达式执行匹配。仅使用匹配给定键的第一个规则。 maxage
密钥指定了缓存文件的时间。该值应为秒或弦,例如30 days
, 5 minutes, 30 seconds
,等等。.s3_website.yaml
中的配置受S3_website的启发,尽管S3_website支持的选项略有不同。
麻省理工学院。