באמצעות Storage Transfer Service אפשר להעתיק קבצים מרשימה של כתובות URL ציבוריות לקטגוריה של Cloud Storage.
כשיוצרים העברה, צריך לספק קישור לקובץ של ערכים מופרדים בטאבים (TSV) שמכיל את כתובות ה-URL והפרטים של האובייקטים שרוצים להעביר. אפשר לארח את קובץ ה-TSV בכל מיקום HTTP או HTTPS שנגיש לציבור, או לאחסן אותו בקטגוריה של Cloud Storage.
בדף הזה מוסבר איך ליצור רשימת כתובות URL ולהעביר אותה לפקודה ליצירת משימה.
הדרישות לגבי קובצי מקור
- כתובות ה-URL צריכות להיות נגישות לכולם ולהשתמש בפרוטוקולים HTTP או HTTPS.
- השרת שמארח כל אובייקט:
- לא לדחות את הגישה לאובייקט באמצעות
robots.txt. - תמיכה בבקשות מסוג
Range. - מחזיר כותרת
Content-Lengthבכל תגובה.
- לא לדחות את הגישה לאובייקט באמצעות
פורמט של רשימת כתובות URL
רשימת כתובות ה-URL צריכה לעמוד בדרישות הבאות:
- הקובץ צריך להיות בפורמט של ערכים מופרדים בטאבים.
- כתובות ה-URL צריכות להיות בסדר לקסיקוגרפי של UTF-8.
- בשורה הראשונה צריך לציין את
TsvHttpData-1.0. - אחרי השורה הראשונה, מציינים אובייקט אחד בכל שורה.
- כל שורה חייבת להכיל את כתובת ה-URL, ויכולה להכיל גם את גודל הקובץ ואת סיכום הביקורת (checksum) של MD5 בקידוד base64 של האובייקט.
הקובץ הבא הוא קובץ TSV לדוגמה שמציין שני אובייקטים להעברה. שימו לב שבדף הזה הטאבים מוצגים כרווחים. בקובץ שלכם, הקפידו להשתמש בטאבים בין השדות.
TsvHttpData-1.0
https://example.com/myfile.pdf 1357 wHENa08V36iPYAsOa2JAdw==
https://example2.com/images/dataset1/flower.png 2468 R9acAaveoPd2y8nniLUYbw==
כל שורה מכילה:
- כתובת ה-URL מסוג HTTP או HTTPS של אובייקט מקור.
(אופציונלי) גודל האובייקט בבייטים.
חשוב לוודא שהגודל שצוין תואם לגודל האמיתי של האובייקט כשהוא מאוחזר. אם גודל האובייקט שמתקבל ב-Cloud Storage לא תואם לגודל שצוין, העברת האובייקט תיכשל.
(אופציונלי) סיכום הביקורת (checksum) של MD5 בקידוד Base64 של האובייקט.
מוודאים שסיכום הביקורת (checksum) שצוין ב-MD5 תואם לסיכום הביקורת ב-MD5 שחושב מהבייטים שהועברו. אם סיכום הביקורת (checksum) מסוג MD5 של האובייקט שמתקבל ב-Cloud Storage לא תואם לסיכום הביקורת (checksum) מסוג MD5 שצוין, העברת האובייקט תיכשל.
אפשר להוסיף את הערכים של גודל האובייקט וסיכום הביקורת (checksum) של MD5, אבל מומלץ מאוד לכלול אותם כדי להבטיח את תקינות הנתונים.
אירוח של רשימת כתובות ה-URL
רשימת כתובות ה-URL יכולה להתארח באחד משני מיקומים:
- כתובת URL שנגישה לכולם.
קטגוריה של Cloud Storage, שלסוכן השירות של Storage Transfer Service יש גישה אליה.
כתובות URL שנגישות לכולם
כשמאחסנים את רשימת כתובות ה-URL בכתובת URL שנגישה לכולם, צריך לעמוד בדרישות הבאות:
- כתובת ה-URL צריכה להתחיל ב-
http://או ב-https://. - השרת חייב להגדיר כותרת
Etagחזקה בתגובת ה-HTTP כשהוא מחזיר את רשימת כתובות ה-URL.
לדוגמה, אתם יכולים לאחסן את הרשימה בקטגוריה של Cloud Storage ולשתף את האובייקט באופן ציבורי כדי לקבל קישור אליו.
קטגוריות של Cloud Storage
כדי לא לאחסן את הרשימה במיקום ציבורי, אתם יכולים לאחסן אותה בקטגוריה של Cloud Storage ולתת גישה לסוכן השירות של Storage Transfer Service.
צריך לתת לסוכן השירות את ההרשאות הבאות:
- ההרשאה
storage.objects.getבאובייקט. אפשר להקצות את ההרשאה הזו על ידי הקצאת התפקידroles/storage.objectViewerבקטגוריה, או באמצעות תפקיד בהתאמה אישית. - ההרשאה
storage.buckets.getבקטגוריה. אפשר לתת את ההרשאה הזו באמצעות התפקידroles/storage.legacyBucketReaderאו באמצעות תפקיד בהתאמה אישית.
כדי לתת הרשאות לסוכן השירות:
איך מוצאים את כתובת האימייל של סוכן השירות
עוברים אל דף העזרה של
googleServiceAccounts.get.נפתחת חלונית אינטראקטיבית בשם Try this method.
בחלונית, בקטע Request parameters, מזינים את מזהה הפרויקט. הפרויקט שמציינים כאן צריך להיות הפרויקט שבו משתמשים כדי לנהל את Storage Transfer Service, והוא יכול להיות שונה מהפרויקט של הקטגוריה עם רשימת כתובות ה-URL.
לוחצים על Execute.
כתובת האימייל של סוכן השירות מוחזרת כערך של accountEmail, בפורמט project-PROJECT_NUMBER@storage-transfer-service..
מעתיקים את הערך הזה.
הקצאת התפקידים הנדרשים
כדי להקצות לסוכן השירות את התפקידים roles/storage.objectViewer ו-roles/storage.legacyBucketReader בקטגוריה שמכילה את רשימת כתובות ה-URL, פועלים לפי ההוראות במאמר הגדרה וניהול של מדיניות IAM בקטגוריות.
חשבון המשתמש שמוסיפים הוא כתובת האימייל של סוכן השירות. אם צריך, מזהה חשבון המשתמש הוא serviceAccount. לדוגמה, serviceAccount:project-PROJECT_NUMBER@storage-transfer-service..
יצירת משימת העברה של רשימת כתובות URL
כדי לציין רשימת כתובות URL כשיוצרים משימת העברה, פועלים לפי ההוראות הבאות:
מסוף Google Cloud
פועלים לפי ההוראות במאמר יצירת משימת העברה.
כשבוחרים מקור:
בקטע סוג המקור, בוחרים באפשרות רשימת כתובות URL ולוחצים על השלב הבא.
בשדה כתובת ה-URL של קובץ ה-TSV, מזינים את כתובת ה-URL של קובץ הערכים המופרדים בטאבים (TSV). כתובת ה-URL היא כתובת HTTP/HTTPS (למשל
https://example.com/urllist.tsv) או נתיב של Cloud Storage (למשלgs://my-bucket/urllist.tsv).
CLI של gcloud
כדי ליצור משימת העברה חדשה, משתמשים בפקודה gcloud transfer jobs create.
gcloud transfer jobs create \
SOURCE DESTINATION
בהעברות של רשימת כתובות URL, הערך של SOURCE הוא כתובת ה-URL של קובץ ה-TSV. כתובת ה-URL היא כתובת HTTP/HTTPS (למשל https://example.com/urllist.tsv) או נתיב של Cloud Storage (למשל gs://my-bucket/urllist.tsv).
מידע נוסף על יצירת העברות באמצעות ה-CLI של gcloud זמין במאמר יצירת משימות העברה.
REST
כדי ליצור משימת העברה של רשימת כתובות URL באמצעות ה-API בארכיטקטורת REST, מציינים את כתובת ה-URL של קובץ ה-TSV בשדה listUrl:
{
"projectId": "PROJECT_ID",
"transferSpec": {
"httpDataSource": {
"listUrl": "URL"
},
"gcsDataSink": {
"bucketName": "DESTINATION_BUCKET"
}
},
"status": "ENABLED"
}
הערך של URL הוא כתובת HTTP/HTTPS (למשל https://example.com/urllist.tsv) או נתיב ב-Cloud Storage (למשל gs://my-bucket/urllist.tsv).
לפרטים נוספים על יצירת העברות באמצעות ה-API ל-REST, קראו את מאמרי העזרה של ה-API ל-REST.