Object Storage (SO)¶
Object Storage שומר קבצים כאובייקטים בתוך buckets. אין תיקיות אמיתיות — רק מפתחות אובייקט שעשויים להכיל / (למשל photos/2026/img.jpg).
השתמשו ב-SO לגיבויים, ארטיפקטי build, מדיה ואתרים סטטיים שמוגשים ב-https://{bucket}.web.{apex}.
| פריט | ערך |
|---|---|
| Console | Object Storage → /console/storage |
| API / CLI host | https://so.{apex} |
| URI scheme | so://bucket/key (לא s3://) |
| Auth (data plane) | Access Key |
הליכה בקונסול¶
יצירת bucket¶
- פתחו Object Storage.
- לחצו Create bucket, בחרו שם בטוח ל-DNS, אשרו.
- פתחו את ה-bucket כדי לראות לשוניות: Objects, Lifecycle, Versioning, Permissions, Website.
באקטי שירות של החשבון¶
הפלטפורמה עשויה ליצור buckets בבעלות החשבון עבור תכונות מוצר:
| Bucket | מטרה |
|---|---|
tasks-{account_number} |
קבצי דיון במשימות |
diagrams-{account_number} |
תמונות nodes בדיאגרמות |
fn-artifacts-{account_number} |
חבילות גרסאות של פונקציות |
הם בתשלום ומופיעים תחת הצג באקטים של שירותי החשבון. משתמשים שאינם root יכולים לראות אותם ברשימה אך לא לפתוח, לדפדף, לערוך או למחוק. משתמש ה-root של החשבון יכול לפעול עליהם כמו על bucket רגיל. אל תיצרו בעצמכם buckets עם קידומות השם השמורות האלה.
עיון והעלאת אובייקטים¶
- פתחו את לשונית Objects.
- נווטו לפי prefix (הממשק מציג prefixes כמו תיקיות).
- Upload קובץ אחד או רבים. העלאות מרובות משתמשות בתור מקביליות (1 / 5 / 10 workers) עם השהיה, המשך וניסיון חוזר אוטומטי. קבצים בודדים גדולים משתמשים ב-multipart upload.
- ההתקדמות מופיעה בכותרת התחתונה של הקונסול — אפשר למזער ולהמשיך לעבוד. סגירת הלשונית בזמן העלאות תזהיר; ביטול מפסיק חלקים שהועלו.
- העתקה / גזירה / הדבקה (וגרירה בין תיקיות) רצה כג'וב בשרת. העברה אטומית לכל אובייקט (העתקה + מחיקה ב-SO). סגירת הקונסול לא משאירה העתקה במקום גזירה. ההתקדמות באותו פאנל הניתן למזעור כמו בהעלאה.
מאפייני אובייקט¶
פתחו אובייקט → Properties כדי לראות גודל, סוג תוכן ו-URI so://bucket/key להעתקה. השתמשו ב-URI הזה ב-CLI/SDK. ב-PowerShell ציטטו URIs כשמפתחות מכילים רווחים:
אירוח אתר סטטי¶
- פתחו את ה-bucket → Website.
- הפעילו אירוח אתר והגדירו מסמכי index / error (למשל
index.html,404.html). - העלו את קבצי האתר (או
homecloud so sync ./dist so://my-website/ --delete). - פתחו
https://{bucket}.web.{apex}. - hostname מותאם אופציונלי: Domains → שירותים → אתר SO.
Lifecycle, versioning, permissions¶
| לשונית | מטרה |
|---|---|
| Lifecycle | לפוג אובייקטים או לבטל העלאות multipart שלא הושלמו אחרי N ימים |
| Versioning | לשמור גרסאות קודמות של מפתחות שנדרסו |
| Permissions | מדיניות bucket / כללי גישה לחשבון |
כללי Lifecycle נאכפים לפי לוח זמנים (לא ברגע השמירה).
חיפוש¶
השתמשו בחיפוש bucket כשצריך למצוא מפתחות לפי שם/prefix ב-bucket גדול (ראו את עזרת Search בקונסול לפילטרים).
CLI¶
דרישות קדם: התקנה, Access Key. רשימת buckets דורשת homecloud login; העברות אובייקטים משתמשות ב-Access Key.
רשימת buckets ואובייקטים¶
homecloud login --username alice
homecloud so ls-buckets
homecloud so ls media
homecloud so ls media --prefix photos/ --recursive
העתקת קובץ אחד¶
סנכרון תיקייה (נפוץ לאתרים סטטיים ולפריסות)¶
הכיוון עוקב אחרי סדר הארגומנטים. ברירת המחדל דורסת מפתחות תואמים.
| דגל | משמעות |
|---|---|
| (none) | דריסה כשהמקור מכיל את הקובץ |
--skip |
דילוג כשגודל היעד כבר תואם |
--delete |
גם הסרת עודפים ביעד (מראה) |
-j N |
העברות קבצים במקביל (ברירת מחדל 10, מקסימום 64) |
מחיקה¶
מדריך דגלים מלא: פקודות CLI so.
SDK¶
from homecloud import HomeCloud
client = HomeCloud.from_env()
client.so.upload("docs", "./readme.md", key="readme.md")
client.so.upload(
"media",
body=b"...",
key="videos/clip.mp4",
content_type="video/mp4",
)
meta = client.so.head_object("docs", "readme.md") # metadata only
client.so.download("docs", "readme.md", "./readme-copy.md")
uri = client.so.get_object_uri("docs", "readme.md")
# uri["so_uri"], uri["https_url"]
url = client.so.generate_presigned_url("docs", "readme.md", expires_in=3600)
client.so.sync("./dist", "so://my-website/", delete=True)
client.so.sync("so://docs/", "./site")
client.so.sync("so://photos/", "so://backup/photos/", delete=True)
עוזרי ניהול כמו list_buckets / create_bucket בדרך כלל דורשים סשן JWT של קונסול (כמו homecloud login). העלאה/הורדה/סנכרון בזמן ריצה משתמשים רק ב-Access Key.
זרימות עבודה טיפוסיות¶
פריסת אתר סטטי מ-CI¶
- צרו bucket
my-website, הפעילו Website. - צרו Access Key עם
so:*(או מדיניות מוגבלת ל-bucket הזה). - ב-CI:
export HC_ACCESS_KEY_ID=...
export HC_SECRET_ACCESS_KEY=...
export HC_APEX=holab.abrdns.com
homecloud so sync ./dist so://my-website/ --delete --output json
שיתוף קישור הורדה זמני¶
השתמשו ב-generate_presigned_url ב-SDK, או הורידו דרך CLI והפיצו את הקובץ בעצמכם. העדיפו זמני תפוגה קצרים.
טיפים ומלכודות¶
- העדיפו
so://בכל מקום בתיעוד ובכלי HomeCloud — לאs3://. - מפתחות עם רווחים דורשים ציטוט ב-PowerShell.
so syncבלי--skipדורס במכוון (מאז CLI v0.2.15).- העלאות multipart שלא הושלמו אפשר לנקות בכלל abort של lifecycle.
- שמות bucket צריכים להישאר בטוחים ל-DNS אם מפעילים אירוח אתר.
קשור¶
- CLI
so - SDK
- Access Keys
- Terraform (
homecloud_so_bucket)