นี่คือเครื่องมือปรับใช้สำหรับการอัปโหลดเว็บไซต์คงที่ไปยัง S3 หากใช้ CloudFront สำหรับโฮสต์เว็บไซต์ไฟล์ที่อัปโหลดสามารถไม่ถูกต้องโดยอัตโนมัติในการแจกแจง CloudFront ต้นไม้นำหน้าใช้เพื่อลดจำนวนของความไม่ถูกต้องเนื่องจากมีเพียงจำนวน จำกัด ของการใช้งานฟรีฟรีต่อเดือน
การกำหนดค่าจะถูกเก็บไว้ในไฟล์ 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 สามารถให้ผ่านตัวแปรสภาพแวดล้อม AWS_ACCESS_KEY_ID และ AWS_SECRET_ACCESS_KEY
$ export AWS_ACCESS_KEY_ID=XXXXXX
$ export AWS_SECRET_ACCESS_KEY=XXXXXX
$ s3-deploy-websiteพวกเขายังสามารถให้ผ่านไฟล์การกำหนดค่าต่างๆที่ Boto อ่าน
_site สำหรับไซต์ Jekyll)s3:GetObject , s3:PutObject , s3:DeleteObject และ s3:ListBucket บนถังและกุญแจเช่น arn:aws:s3:::example.com และ arn:aws:s3:::example.com/*cloudfront:CreateInvalidationmatch ระบุรูปแบบที่กฎใช้กับ สิ่งนี้ใช้การจับคู่สไตล์ลูกโลก (กับ * และ ? ) การจับคู่สามารถทำได้ด้วยนิพจน์ทั่วไปโดยใช้ match_regexp เฉพาะกฎแรกที่ตรงกับคีย์ที่กำหนดเท่านั้น คีย์ maxage ระบุเวลาในการแคชไฟล์ ค่าควรเป็นจำนวนวินาทีหรือสตริงเช่น 30 days , 5 minutes, 30 seconds ฯลฯ การกำหนดค่าใน .s3_website.yaml ได้รับแรงบันดาลใจจาก S3_Website แม้ว่าตัวเลือกที่รองรับโดย S3_Website จะแตกต่างกันเล็กน้อย
MIT