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支持的選項略有不同。
麻省理工學院。