هذه أداة نشر لتحميل مواقع الويب الثابتة إلى 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:CreateInvalidation
.match
نمطًا تنطبق عليه القاعدة. هذا يستخدم مطابقة على غرار العالم (مع *
و ?
). يمكن أيضًا إجراء المطابقة مع تعبيرات منتظمة باستخدام match_regexp
. سيتم استخدام القاعدة الأولى فقط لمطابقة مفتاح معين. يحدد مفتاح maxage
وقت تخزين الملف. يجب أن تكون القيمة إما عدد من الثواني أو سلسلة مثل 30 days
، 5 minutes, 30 seconds
، إلخ. استلهم التكوين في .s3_website.yaml
بواسطة S3_Website على الرغم من أن الخيارات المدعومة من S3_Website مختلفة قليلاً.
معهد ماساتشوستس للتكنولوجيا.