אפשר להשתמש ב-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, כי הפורמט של המניפסט ייחודי לרשימות של כתובות URL.
יצירת מניפסט
אלה הדרישות לגבי קובצי מניפסט:
- המניפסטים חייבים להיות בפורמט CSV.
- הם יכולים להכיל כל תו בקידוד UTF-8.
- העמודה הראשונה חייבת להיות שם קובץ או שם אובייקט. השם הוא יחסי לנתיב הבסיס או לקטגוריה ולתיקייה שצוינו במשימת ההעברה. פרטים נוספים זמינים במאמרים העברות של מערכת קבצים והעברות של מאגר אובייקטים.
- קובצי מניפסט לא תומכים בתווים כלליים לחיפוש. אי אפשר להשתמש בשמות של תיקיות בלי שם של קובץ או אובייקט.
- אם שם הקובץ או האובייקט מכיל פסיק, צריך להקיף את השם במירכאות כפולות. לדוגמה,
"doe,john.txt". - אין הגבלה על הגודל של קובץ המניפסט.
מומלץ לבדוק את ההעברה עם קבוצת משנה קטנה של קבצים או אובייקטים, כדי למנוע קריאות מיותרות ל-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.
לדוגמה, כדי להעלות קובץ ל-Cloud Storage באמצעות ה-CLI של gcloud, משתמשים בפקודה 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 KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) במפתח Cloud KMS שמשמש להצפנת המניפסט לשני סוכני השירות הבאים:
- סוכן השירות של Storage Transfer Service,
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. - סוכן השירות של Cloud Storage בפרויקט שמכיל את הקטגוריה של המניפסט,
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com.
במאמר הקצאת מפתח Cloud KMS לסוכן שירות מוסבר איך מקצים את התפקיד הזה. אין תמיכה במפתחות הצפנה באספקת הלקוח (CSEK).
אחסון המניפסט במערכת קבצים
אתם יכולים לאחסן את קובץ המניפסט במערכת הקבצים של המקור או היעד.
לסוכני ההעברה צריכה להיות גישה למיקום של הקובץ. אם אתם מגבילים את הגישה לספרייה של הסוכנים, ודאו שקובץ המניפסט נמצא בספרייה שנטענה.
התחלת העברה
אל תשנו את קובץ המניפסט עד שפעולת ההעברה תסתיים. מומלץ לנעול את קובץ המניפסט בזמן ההעברה.
מסוף Cloud
כדי להתחיל העברה עם מניפסט ממסוף Cloud:
פועלים לפי ההוראות במאמר יצירת העברות כדי לבחור את המקור, היעד והאפשרויות.
בשלב האחרון, Choose settings, מסמנים את התיבה Provide list of files to transfer via קובץ מניפסט.
מזינים את המיקום של קובץ המניפסט.
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
כדי להעביר את הקבצים או האובייקטים שרשומים במניפסט, מבצעים קריאה ל-API של createTransferJob שמציינת 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://, והם יחסיים למקור או ליעד של מערכת הקבצים, ולתיקיית השורש האופציונלית.
המשך
Java
Node.js
Python
האובייקטים או הקבצים במניפסט לא בהכרח מועברים לפי הסדר שבו הם מופיעים.
אם המניפסט כולל קבצים שכבר קיימים ביעד, המערכת מדלגת על הקבצים האלה, אלא אם צוינה האפשרות overwrite objects already existing in sink.
אם המניפסט כולל אובייקטים שקיימים בגרסה אחרת ביעד, האובייקט ביעד יוחלף בגרסת המקור של האובייקט. אם היעד הוא קטגוריה עם גרסאות, נוצרת גרסה חדשה של האובייקט.
המאמרים הבאים
איך מסננים אובייקטים מהעברות: