هذه أداة نشر لتحميل مواقع الويب الثابتة إلى 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 مختلفة قليلاً.
معهد ماساتشوستس للتكنولوجيا.