תיעוד 271
נעילות דלי
נעילות דלי מונעות מחיקה ודריסה של אובייקטים בדלי R2 למשך תקופה מוגדרת, או ללא הגבלת זמן. כשהאפשרות מופעלת, נעילות הדלי אוכפות מדיניות שמירה על האובייקטים, וכך עוזרות להגן עליהם ממחיקה בטעות או ממחיקה מוקדמת.
#תחילת עבודה עם נעילות דלי
לפני שמתחילים, צריך:
- דלי R2 קיים. אם אין עדיין דלי R2 קיים, ראו יצירת דליים.
- (API בלבד) אסימון API עם הרשאות לעריכת תצורת דלי R2.
#הפעלת נעילת דלי דרך לוח הבקרה
- בלוח הבקרה של Cloudflare, עברו לעמוד אחסון אובייקטים R2. מעבר ל-Overview ↗
- בחרו את הדלי שאליו תרצו להוסיף כלל נעילת דלי.
- עברו ללשונית Settings, ואז גללו למטה לכרטיס Bucket lock rules.
- בחרו Add rule והזינו את שם הכלל, הקידומת ואת תקופת השמירה.
- בחרו Save changes.
#הפעלת נעילת דלי דרך Wrangler
- התקינו
npm↗︎. - התקינו את Wrangler, ממשק שורת הפקודה של פלטפורמת המפתחים.
- התחברו ל-Wrangler באמצעות פקודת
wrangler login. - הוסיפו כלל נעילת דלי לדלי באמצעות הרצת פקודת
r2 bucket lock add.
npx wrangler r2 bucket lock add <BUCKET_NAME> [OPTIONS]לחלופין, אפשר להגדיר את כל תצורת נעילת הדלי של דלי מקובץ JSON באמצעות פקודת r2 bucket lock set.
npx wrangler r2 bucket lock set <BUCKET_NAME> --file <FILE_PATH>קובץ ה-JSON צריך להיות בפורמט של גוף הבקשה של ממשק ה-API להגדרת תצורת נעילת דלי.
#הפעלת נעילת דלי דרך API
למידע על תחילת עבודה עם ה-API של Cloudflare, ראו ביצוע קריאות API. למידע על הפרמטרים הנדרשים ודוגמאות נוספות להגדרת תצורת נעילת דלי, ראו את תיעוד ה-API.
להלן דוגמה להגדרת תצורת נעילת דלי (אוסף כללים):
curl -X PUT "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/r2/buckets/<BUCKET_NAME>/lock" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"rules": [
{
"id": "lock-logs-7d",
"enabled": true,
"prefix": "logs/",
"condition": {
"type": "Age",
"maxAgeSeconds": 604800
}
},
{
"id": "lock-images-indefinite",
"enabled": true,
"prefix": "images/",
"condition": {
"type": "Indefinite"
}
}
]
}'הבקשה הזו יוצרת שני כללים:
lock-logs-7d: אובייקטים תחת הקידומתlogs/נשמרים למשך 7 ימים (604800 שניות).lock-images-indefinite: אובייקטים תחת הקידומתimages/נעולים ללא הגבלת זמן.
הערה
אם הדלי מוגדר עם הגבלות שיפוט, צריך להעביר כותרת בקשה cf-r2-jurisdiction עם השיפוט הזה. לדוגמה, cf-r2-jurisdiction: eu.
#קבלת כללי נעילת דלי לדלי R2
#לוח בקרה
- בלוח הבקרה של Cloudflare, עברו לעמוד אחסון אובייקטים R2. מעבר ל-Overview ↗
- בחרו את הדלי שאליו תרצו להוסיף כלל נעילת דלי.
- עברו ללשונית Settings, ואז גללו למטה לכרטיס Bucket lock rules.
#Wrangler
כדי להציג את כללי נעילת הדלי, הריצו את פקודת r2 bucket lock list:
npx wrangler r2 bucket lock list <BUCKET_NAME>#API
למידע נוסף על הפרמטרים הנדרשים ודוגמאות לקבלת כללי נעילת דלי, ראו את תיעוד ה-API.
#הסרת כללי נעילת דלי מדלי R2
#לוח בקרה
- בלוח הבקרה של Cloudflare, עברו לעמוד אחסון אובייקטים R2. מעבר ל-Overview ↗
- בחרו את הדלי שאליו תרצו להוסיף כלל נעילת דלי.
- עברו ללשונית Settings, ואז גללו למטה לכרטיס Bucket lock rules.
- אתרו את הכלל שברצונכם להסיר, בחרו את סמל
...שלידו, ואז בחרו Delete.
#Wrangler
כדי להסיר כלל נעילת דלי, הריצו את פקודת r2 bucket lock remove:
npx wrangler r2 bucket lock remove <BUCKET_NAME> --id <RULE_ID>#API
כדי להסיר כללי נעילת דלי דרך ה-API, השמיטו אותם מהתצורה המעודכנת והשתמשו ב-ממשק ה-API להגדרת תצורת נעילת דלי.
#כללי נעילת דלי
תצורת נעילת דלי יכולה לכלול עד 1,000 כללים. כל כלל מציין אילו אובייקטים הוא מכסה (באמצעות קידומת) ולכמה זמן האובייקטים האלה חייבים להישאר נעולים. אפשר:
- לנעול אובייקטים למשך זמן מוגדר. לדוגמה, 90 ימים.
- לשמור אובייקטים עד תאריך מסוים. לדוגמה, עד 1 בינואר 2026.
- להשאיר אובייקטים נעולים ללא הגבלת זמן.
אם כמה כללים חלים על אותה קידומת או על אותו מפתח אובייקט, דרישת השמירה המחמירה ביותר (הארוכה ביותר) גוברת.
#הערות
- כללים בלי קידומת חלים על כל האובייקטים בדלי.
- נעילות דלי מגנות גם על אובייקטים קיימים וגם על אובייקטים שנוצרים אחרי שהכלל מופעל. הן לא מונעות יצירת אובייקטים חדשים.
- אחרי שעדכון כלל מצליח, שינויים באובייקטים מוגנים נחסמים מאותו רגע. זה כולל דריסות, מחיקות, השלמת העלאות שהתחילו קודם, והסרה על ידי כללי מחזור חיים.
- בקשת S3 API לאובייקט בודד שנחסמת על ידי כלל נעילת דלי נכשלת עם HTTP
409וקוד השגיאהObjectLockedByBucketPolicy. במחיקות של כמה אובייקטים (DeleteObjects), R2 מחזיר HTTP200ומדווח עלObjectLockedByBucketPolicyלכל מפתח נעול בגוף התשובה. בדיקת הנעילה רצה לפני תנאים על האובייקט שנכתב, כמוIf-None-MatchאוIf-Match, ולכן כתיבה שנכשלת בשתי הבדיקות מחזירהObjectLockedByBucketPolicy, ולאPreconditionFailed(412). בכל מקרה האובייקט הקיים לא משתנה. - כללי נעילת דלי גוברים על כללי מחזור חיים. לדוגמה, אם כלל מחזור חיים מנסה למחוק אובייקט אחרי 30 ימים אבל כלל נעילת דלי דורש שהוא יישמר למשך 90 ימים, האובייקט לא יימחק עד שדרישת 90 הימים תתקיים.
- אי אפשר לרוקן דלי כל עוד מוגדרים כללי נעילת דלי כלשהם. הסירו את כל כללי הנעילה לפני ריקון דלי. כללי נעילת דלי חלים גם כשמוחקים תיקיות מלוח הבקרה.