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