Storage Transfer Service תומך בהעברה של קבצים או אובייקטים ספציפיים, שמצוינים באמצעות מניפסט. מניפסט הוא קובץ CSV שמועלה ל-Cloud Storage ומכיל רשימה של קבצים או אובייקטים ש-Storage Transfer Service צריך לבצע עליהם פעולה.
אפשר להשתמש במניפסט להעברות הבאות:
מ-AWS S3, מאחסון שתואם ל-S3, מ-Azure Blobstore או מ-Cloud Storage לקטגוריה של Cloud Storage.
ממערכת קבצים לקטגוריה של Cloud Storage.
מקובץ בקטגוריה של Cloud Storage למערכת קבצים.
בין שתי מערכות קבצים.
ממקור HTTP/HTTPS שנגיש לציבור לקטגוריה של Cloud Storage. פועלים לפי ההוראות שבמאמר בנושא יצירת רשימת כתובות URL, כי פורמט המניפסט שונה מרשימות אחרות.
יצירת קובץ מניפסט
יש דרישות מסוימות לגבי קובצי מניפסט:
- קובצי המניפסט חייבים להיות בפורמט CSV.
- הם יכולים להכיל כל תווי UTF-8.
- העמודה הראשונה חייבת להיות שם קובץ או שם אובייקט. השם הוא יחסי לנתיב הבסיס או למאגר ולתיקייה שצוינו במשימת ההעברה. פרטים נוספים זמינים במאמרים בנושא העברות של מערכות קבצים והעברות של אחסון אובייקטים.
- קבצי מניפסט לא תומכים בתווים כלליים לחיפוש. שמות של תיקיות ללא שם קובץ או אובייקט אינם נתמכים.
- אם שם של קובץ או אובייקט מכיל פסיק, צריך להקיף את השם במירכאות כפולות. לדוגמה,
"doe,john.txt". - בהעברות שנעשה בהן שימוש בסוכני העברה (כלומר, העברות של מערכת קבצים או העברות מאחסון שתואם ל-S3), הגודל המקסימלי של קובץ המניפסט הוא 1GB, שזה בערך מיליון שורות. אם קובץ המניפסט גדול מ-1 GiB, אפשר לפצל אותו לכמה קבצים ולהפעיל כמה משימות העברה. בהעברות ללא סוכן, אין הגבלה על גודל קובץ המניפסט.
כדי להימנע מקריאות מיותרות ל-API בגלל שגיאות בהגדרות, מומלץ לבדוק את ההעברה עם קבוצת משנה קטנה של קבצים או אובייקטים.
אפשר לעקוב אחרי סטטוס העברת הקבצים בדף Transfer Jobs. קבצים או אובייקטים שההעברה שלהם נכשלה מפורטים ביומני ההעברה.
העברות של מערכות קבצים
כדי ליצור מניפסט של קבצים במערכת קבצים, יוצרים קובץ CSV עם עמודה אחת שמכילה את נתיבי הקבצים ביחס לספריית הבסיס שצוינה ביצירת העברת העבודה.
לדוגמה, כדי להעביר את הקבצים הבאים של מערכת הקבצים:
| נתיב קובץ |
|---|
rootdir/dir1/subdir1/file1.txt |
rootdir/file2.txt |
rootdir/dir2/subdir1/file3.txt |
קובץ המניפסט צריך להיראות כמו בדוגמה הבאה:
dir1/subdir1/file1.txt
file2.txt
dir2/subdir1/file3.txt
שומרים את קובץ המניפסט עם שם קובץ כלשהו והסיומת .csv.
העברות של אחסון אובייקטים
כדי ליצור מניפסט של אובייקטים, יוצרים קובץ CSV שהעמודה הראשונה שלו מכילה את שמות האובייקטים ביחס לשם ולנתיב של הקטגוריה שצוינו ביצירת עבודת ההעברה. כל האובייקטים צריכים להיות באותה קטגוריה.
אפשר גם לציין עמודה שנייה אופציונלית עם מספר דור של הגרסה הספציפית להעברה ב-Cloud Storage.
לדוגמה, יכול להיות שתרצו להעביר את האובייקטים הבאים:
| נתיב האובייקט | מספר הדור ב-Cloud Storage |
|---|---|
SOURCE_PATH/object1.pdf |
1664826685911832 |
SOURCE_PATH/object2.pdf |
|
SOURCE_PATH/object3.pdf |
1664826610699837 |
קובץ המניפסט צריך להיראות כמו בדוגמה הבאה:
object1.pdf,1664826685911832
object2.pdf
object3.pdf,1664826610699837
שומרים את קובץ המניפסט עם שם קובץ כלשהו והסיומת .csv.
העברות HTTP/HTTPS
כדי להעביר קבצים ספציפיים ממקור HTTP או HTTPS, אפשר לעיין בהוראות שבמאמר יצירת רשימת כתובות URL.
פרסום קובץ המניפסט
אחרי שיוצרים את קובץ המניפסט, צריך להפוך אותו לזמין ל-Storage Transfer Service. Storage Transfer Service יכול לגשת לקובץ בקטגוריה של Cloud Storage או במערכת הקבצים שלכם.
העלאת המניפסט ל-Cloud Storage
אפשר לאחסן את קובץ המניפסט בכל קטגוריה של Cloud Storage.
לסוכן השירות שמריץ את ההעברה צריכה להיות הרשאת storage.objects.get לדלי שמכיל את המניפסט. הוראות למציאת מזהה סוכן השירות ולהענקת הרשאות לסוכן השירות הזה בקטגוריה מופיעות במאמר בנושא הענקת ההרשאות הנדרשות.
הוראות להעלאת קובץ המניפסט לקטגוריה מפורטות במאמר העלאת אובייקטים במסמכי Cloud Storage.
לדוגמה, כדי להשתמש ב-gcloud CLI כדי להעלות קובץ ל-Cloud Storage, משתמשים בפקודה gcloud storage cp:
gcloud storage cp MANIFEST.CSV gs://DESTINATION_BUCKET_NAME/
מחליפים את מה שכתוב בשדות הבאים:
MANIFEST.CSVהוא הנתיב המקומי לקובץ המניפסט. לדוגמה,Desktop/manifest01.csv.
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה מעלים את האובייקט. לדוגמה,my-bucket.
אם הפעולה בוצעה ללא שגיאות, התשובה תיראה כמו בדוגמה הבאה:
Completed files 1/1 | 164.3kiB/164.3kiB
אפשר להצפין מניפסט באמצעות מפתחות הצפנה של Cloud KMS בניהול הלקוח. במקרה כזה, צריך לוודא שלחשבונות השירות שיש להם גישה למניפסט משויכים מפתחות ההצפנה הרלוונטיים. אין תמיכה במפתחות באספקת הלקוח.
אחסון המניפסט במערכת קבצים
אפשר לאחסן את קובץ המניפסט במערכת הקבצים של המקור או של היעד.
סוכני ההעברה צריכים להיות מסוגלים לגשת למיקום של הקובץ. אם מגבילים את הגישה לספרייה לסוכנים, צריך לוודא שקובץ המניפסט נמצא בספרייה שמוגדרת כספרייה וירטואלית.
התחלת העברה
אל תשנו את קובץ המניפסט עד להשלמת פעולת ההעברה. מומלץ לנעול את קובץ המניפסט בזמן ההעברה.
מסוף Cloud
כדי להתחיל העברה עם מניפסט ממסוף Cloud:
פועלים לפי ההוראות שבקטע יצירת העברות כדי לבחור את המקור, היעד והאפשרויות.
בשלב האחרון, בחירת הגדרות, מסמנים את תיבת הסימון העברת רשימת קבצים באמצעות קובץ מניפסט.
מזינים את המיקום של קובץ המניפסט.
gcloud
כדי להעביר את הקבצים או האובייקטים שמפורטים במניפסט, צריך לכלול את הדגל --manifest-file=MANIFEST_FILE בפקודה gcloud transfer jobs create.
gcloud transfer jobs create SOURCE DESTINATION \
--manifest-file=MANIFEST_FILE
הערך MANIFEST_FILE יכול להיות כל אחת מהאפשרויות הבאות:
הנתיב לקובץ ה-CSV בקטגוריה של Cloud Storage:
--manifest-file=gs://my_bucket/sample_manifest.csvאם הקטגוריה או הקובץ לא ציבוריים, אפשר לעיין במאמר העלאת קובץ המניפסט ל-Cloud Storage כדי לקבל פרטים על ההרשאות הנדרשות.
הנתיב היחסי ממערכת הקבצים SOURCE, כולל כל נתיב שצוין:
--manifest-file=source://relative_path/sample_manifest.csvהנתיב היחסי ממערכת הקבצים DESTINATION, כולל כל נתיב שצוין:
--manifest-file=destination://relative_path/sample_manifest.csv
REST + ספריות לקוח
REST
כדי להעביר את הקבצים או האובייקטים שמפורטים במניפסט, צריך לבצע קריאה ל-createTransferJob API שבה מצוין transferSpec עם השדה transferManifest שנוסף. לדוגמה:
POST https://storagetransfer.googleapis.com/v1/transferJobs
...
"transferSpec": {
"posixDataSource": {
"rootDirectory": "/home/",
},
"gcsDataSink": {
"bucketName": "GCS_NEARLINE_SINK_NAME",
"path": "GCS_SINK_PATH",
},
"transferManifest": {
"location": "gs://my_bucket/sample_manifest.csv"
}
}
אפשר לאחסן את קובץ המניפסט בקטגוריה של Cloud Storage, או במערכת הקבצים של המקור או של היעד. בקטגוריות של Cloud Storage צריך להשתמש בתחילית gs:// ולכלול את הנתיב המלא, כולל שם הקטגוריה. מיקומי מערכת הקבצים חייבים להשתמש בקידומת source:// או destination:// והם יחסיים למקור או ליעד של מערכת הקבצים, ולספריית הבסיס האופציונלית.
Go
Java
Node.js
Python
האובייקטים או הקבצים במניפסט לא מועברים בהכרח לפי הסדר שמופיע ברשימה.
אם קובץ המניפסט כולל קבצים שכבר קיימים ביעד, המערכת מדלגת על הקבצים האלה, אלא אם מציינים את האפשרות overwrite objects already existing in sink.
אם המניפסט כולל אובייקטים שקיימים בגרסה אחרת ביעד, האובייקט ביעד יוחלף בגרסת המקור של האובייקט. אם היעד הוא קטגוריה עם ניהול גרסאות, נוצרת גרסה חדשה של האובייקט.