בעזרת 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, ויכולה להכיל גם את גודל הקובץ ואת סכום הביקורת 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 לא תואם לגודל שצוין, העברת האובייקט תיכשל.
(אופציונלי) סכום הבדיקה MD5 של האובייקט בקידוד Base64.
מוודאים שסכום ה-MD5 שצוין תואם לסכום ה-MD5 שחושב מהבייטים שהועברו. אם סיכום הביקורת (checksum) מסוג MD5 של האובייקט שמתקבל ב-Cloud Storage לא תואם לסיכום הביקורת מסוג MD5 שצוין, העברת האובייקט תיכשל.
הערכים של גודל האובייקט וסיכום ה-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.object.getבאובייקט. אפשר להעניק את ההרשאה הזו באמצעות התפקידroles/storage.legacyObjectReaderבקטגוריה, או באמצעות תפקיד בהתאמה אישית. - ההרשאה
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.iam.gserviceaccount.com.
מעתיקים את הערך הזה.
הקצאת התפקידים הנדרשים
כדי להעניק לסוכן השירות את התפקיד roles/storage.objectViewer ואת התפקיד roles/storage.bucketViewer בקטגוריה שמכילה את רשימת כתובות ה-URL, פועלים לפי ההוראות במאמר הגדרה וניהול של מדיניות IAM בקטגוריות.
החשבון הראשי שאתם מוסיפים הוא כתובת האימייל של סוכן השירות. אם נדרש,
מזהה חשבון המשתמש הוא serviceAccount. לדוגמה, serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.
יצירת העברה של רשימת כתובות 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.