בדף הזה מוסבר איך להעתיק אובייקטים, לשנות את השם שלהם ולהעביר אותם. יש כלים שמבצעים פעולות אטומיות של העברת אובייקטים, אבל כלים אחרים מדמים פעולה של העברת אובייקט על ידי העתקת האובייקט למיקום חדש שצוין ואז מחיקת האובייקט המקורי.
- הוראות להעתקת אובייקטים מופיעות במאמר העתקת אובייקטים.
- הוראות להעברה או לשינוי שם של אובייקטים באמצעות העתקה מופיעות במאמר העברה או שינוי שם של אובייקטים באמצעות העתקה.
- הוראות לשינוי שם של אובייקטים באופן אטומי מופיעות במאמר שינוי שם של אובייקטים באופן אטומי.
מומלץ להשתמש ב-Storage Transfer Service כדי להעביר יותר מ-1TB של נתונים בין קטגוריות.
לפני שמתחילים
כדי להעתיק, לשנות שם או להעביר אובייקטים, צריך לקבל את תפקידי ה-IAM הנדרשים. בקטעים הבאים מתוארות הדרישות של IAM לתרחישים שונים לדוגמה.
העתקת אובייקטים (כולל העברה או שינוי שם באמצעות העתקה)
כדי לקבל את ההרשאות שדרושות להעתקת אובייקטים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בקטגוריית המקור שמכילה את האובייקטים שרוצים להעביר, או בקטגוריית היעד שאליה רוצים להעביר את האובייקטים:
-
צפייה באובייקטים של אחסון (
roles/storage.objectViewer) בקטגוריית המקור -
משתמש באובייקטים באחסון (
roles/storage.objectUser) בקטגוריית היעד -
כדי להעתיק אובייקטים באמצעות Google Cloud המסוף:
תפקיד בסיסי של צפייה (
roles/viewer) בקטגוריית המקור ובקטגוריית היעד, בנוסף ל-roles/storage.objectViewerול-roles/storage.objectUser
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות להעתקת אובייקטים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להעתיק אובייקטים, צריך את ההרשאות הבאות:
-
storage.objects.getבקטגוריית המקור -
storage.objects.createבקטגוריית היעד -
storage.objects.delete(נדרש רק אם מחליפים או מחליפים אובייקט בקטגוריית היעד כחלק מפעולת העתקה או העברה של אובייקט) בקטגוריית היעד -
storage.objects.delete(נדרש רק אם מעבירים אובייקט באמצעות פעולת העתקה ומחיקה בסיסית) בקטגוריית המקור -
storage.folders.create(נדרש רק אם האובייקט שרוצים להעביר נמצא בתיקייה שרוצים ליצור בקטגוריית היעד) בקטגוריית היעד -
storage.objects.list(נדרשת רק אם מעתיקים, מעבירים או משנים שם של אובייקט באמצעות מסוף Google Cloud ) בקטגוריות המקור והיעד -
storage.buckets.list(נדרש רק אם מעתיקים, מעבירים או משנים שם של אובייקט באמצעות Google Cloud המסוף) בפרויקט שמכיל את קטגוריות המקור והיעד
אפשר לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות. במאמר ניהול הגישה לפרויקטים מוסבר איך להקצות תפקידים בפרויקטים.
אם האובייקט שרוצים להעתיק כולל תכונות מסוימות שמופעלות, יכול להיות שתצטרכו תפקידים נוספים או חלופיים. לדוגמה, אם לאובייקט שרוצים להעתיק יש הגדרת שמירת אובייקט שרוצים לשמור, תצטרכו תפקיד בקטגוריית היעד שכולל את ההרשאה storage.objects.setRetention, כמו התפקיד 'אדמין לניהול אובייקטים ב-Storage' (roles/storage.objectAdmin).
מידע נוסף זמין במאמר הרשאות IAM ל-Cloud Storage.
שינוי שם של אובייקטים באופן אטומי
כדי לקבל את ההרשאות שדרושות לשינוי שם של אובייקטים באופן אטומי, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Storage Object User (roles/storage.objectUser) בקטגוריה שמכילה את האובייקט שרוצים לשנות את השם שלו.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות לשינוי שם של אובייקטים באופן אטומי. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לשנות את השם של אובייקטים באופן אטומי, נדרשות ההרשאות הבאות:
-
storage.objects.move -
storage.objects.create -
storage.objects.delete(חובה רק אם מחליפים אובייקט או מחליפים את התוכן שלו)
אפשר לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות.
העתקת אובייקטים
בקטע הזה מוסבר איך מעתיקים אובייקטים. אפשר להעתיק אובייקטים מקטגוריה אחת לקטגוריה אחרת.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק.
הדף Bucket details נפתח עם הכרטיסייה Objects שנבחרה.
עוברים אל האובייקט, שאולי יהיה ממוקם בתיקייה.
לוחצים על התפריט Object overflow (more_vert) שמשויך לאובייקט.
לוחצים על Copy.
מופיעה החלונית Copy object.
בשדה Destination, מקלידים את השם של קטגוריית היעד ואת השם לאובייקט שמעתיקים.
אפשר גם ללחוץ על Browse כדי לבחור את היעד, אבל אפשרויות הבחירה מוגבלות לקטגוריות בפרויקט הנוכחי.
לוחצים על Copy.
במאמר פתרון בעיות מוסבר איך מקבלים מידע מפורט על שגיאות בנושא פעולות ב-Cloud Storage שנכשלו במסוף Google Cloud .
שורת הפקודה
משתמשים בפקודה gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/NAME_OF_COPY
כאשר:
-
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה,my-bucket. -
SOURCE_OBJECT_NAMEהוא שם האובייקט שרוצים להעתיק. לדוגמה,pets/dog.png. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה,another-bucket. -
NAME_OF_COPYהוא השם שרוצים לתת לעותק של האובייקט. לדוגמה,shiba.png.
אם הפעולה בוצעה ללא שגיאות, התשובה תיראה כמו בדוגמה הבאה:
Copying gs://example-bucket/file.txt to gs://other-bucket/file-copy.txt Completed files 1/1 | 164.3kiB/164.3kiB
ספריות לקוח
C++
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
C#
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C# API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Go
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Go API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Node.js API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Python API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Ruby
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Ruby API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
ממשקי API ל-REST
API ל-JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של אובייקטPOST:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/NAME_OF_COPY"
כאשר:
-
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה,my-bucket. -
SOURCE_OBJECT_NAMEהוא השם של האובייקט שרוצים להעתיק, בקידודי תווים שמתאימים לכתובת URL. לדוגמה,pets/dog.pngיותאם לקידודי התווים שמתאימים לכתובות URL באופן הבא:pets%2Fdog.png. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה,another-bucket. -
NAME_OF_COPYהוא השם שרוצים לתת לעותק של האובייקט, בקידודי תווים שמתאימים ל-URL. לדוגמה,shiba.png.
מכיוון ששיטת
rewriteמעתיקה נתונים במקטעים בגודל מוגבל, ייתכן שיהיה צורך ליצור כמה בקשות העתקה, במיוחד לאובייקטים גדולים.לדוגמה, התגובה הבאה לבקשת
rewriteמראה שצריך לשלוח בקשותrewriteנוספות:{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 1048576, "objectSize": 10000000000, "done": false, "rewriteToken": TOKEN_VALUE }-
בבקשה הבאה משתמשים ב-
rewriteTokenכדי להמשיך בהעתקת הנתונים:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ -d '{"rewriteToken": "TOKEN_VALUE"}' \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/NAME_OF_COPY"כאשר:
-
TOKEN_VALUEהוא הערך שלrewriteTokenשהוחזר בבקשה הקודמת. - כל שאר הערכים תואמים לאלה ששימשו בבקשה הקודמת.
כשמעתיקים את האובייקט במלואו, בתגובה האחרונה המאפיין (property)
doneמוגדר כ-true, אין מאפייןrewriteTokenוהמטא-נתונים של העותק נכללים במאפייןresource.{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 10000000000, "objectSize": 10000000000, "done": true, "resource": objects Resource }-
API בפורמט XML
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט XML באמצעות בקשת אובייקטPUT:curl -X PUT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-copy-source: SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME" \ "https://storage.googleapis.com/DESTINATION_BUCKET_NAME/NAME_OF_COPY"
כאשר:
-
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה,my-bucket. -
SOURCE_OBJECT_NAMEהוא שם האובייקט שרוצים להעתיק. לדוגמה,pets/dog.png. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה,another-bucket. -
NAME_OF_COPYהוא השם שרוצים לתת לעותק של האובייקט, בקידודי תווים שמתאימים ל-URL. לדוגמה,shiba.png.
-
העברה או שינוי שם של אובייקטים באמצעות העתקה
בקטע הזה מוסבר איך להעביר או לשנות את השם של אובייקטים באמצעות פעולות בסיסיות של העתקת אובייקטים. הכלים שמתוארים בקטע הזה מעבירים אובייקטים ומשנים את השם שלהם על ידי העתקת האובייקט המקורי למרחב שמות אחר ומחיקת האובייקט המקורי.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקט שרוצים להעביר.
הדף Bucket details נפתח עם הכרטיסייה Objects שנבחרה.
עוברים אל האובייקט, שאולי יהיה ממוקם בתיקייה.
לוחצים על התפריט Object overflow (more_vert) שמשויך לאובייקט.
אם רוצים לתת לאובייקט שם חדש באותה קטגוריה, לוחצים על Rename.
בחלון שכבת-העל שמופיע, מזינים שם חדש לאובייקט.
לוחצים על Rename.
אם רוצים להעביר את האובייקט לקטגוריה אחרת, לוחצים על Move.
בחלון שכבת-העל שמופיע, לוחצים על Browse.
בוחרים את היעד לאובייקט שרוצים להעביר.
לוחצים על Select.
לוחצים על Move.
במאמר פתרון בעיות מוסבר איך מקבלים מידע מפורט על שגיאות בנושא פעולות ב-Cloud Storage שנכשלו במסוף Google Cloud .
שורת הפקודה
משתמשים בפקודה gcloud storage mv:
gcloud storage mv gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME
כאשר:
-
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים להעביר או לשנות לו את השם. לדוגמה,my-bucket. -
SOURCE_OBJECT_NAMEהוא שם האובייקט שרוצים להעביר או לשנות לו את השם. לדוגמה,pets/dog.png. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעביר את האובייקט. לדוגמה,another-bucket. -
DESTINATION_OBJECT_NAMEהוא השם שרוצים לתת לאובייקט אחרי ההעברה או שינוי השם. לדוגמה,shiba.png.
אם הפעולה בוצעה ללא שגיאות, התשובה תיראה כמו בדוגמה הבאה:
Copying gs://example-bucket/old-file.txt to gs://new-bucket/new-file.txt Removing gs://example-bucket/old-file.txt... Completed files 1/1 | 164.3kiB/164.3kiB
ספריות לקוח
C++
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
C#
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C# API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Go
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Go API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Node.js API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Python API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Ruby
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Ruby API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
ממשקי API ל-REST
API ל-JSON
הוראות להעברה או לשינוי שם של אובייקטים באמצעות העתקה ב-API בפורמט JSON מופיעות במאמר העתקת אובייקטים.
API בפורמט XML
הוראות לשימוש ב-API בפורמט XML להעברה או לשינוי שם של אובייקטים באמצעות העתקה מפורטות במאמר העתקת אובייקטים.
שינוי שם של אובייקטים באופן אטומי
בקטע הזה מוסבר איך לשנות את השם של אובייקטים בקטגוריה באופן אטומי.
כדי לשנות שם של אובייקט, אפשר להשתמש בשיטה Objects: move ב-API בפורמט JSON של Cloud Storage.
ממשקי API ל-REST
API ל-JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשתObjects: move:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/SOURCE_OBJECT_NAME/moveTo/o/DESTINATION_OBJECT_NAME"
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים לשנות לו את השם. לדוגמה,my-bucket. -
SOURCE_OBJECT_NAMEהוא השם של האובייקט שרוצים לשנות, בקידודי תווים שמתאימים לכתובות URL. לדוגמה,pets/dog.pngיותאם לקידודי התווים שמתאימים לכתובות URL באופן הבא:pets%2Fdog.png. -
DESTINATION_OBJECT_NAMEהוא השם שרוצים להשתמש בו, מותאם לקידודי התווים שמתאימים לכתובות URL. לדוגמה,pets/cat.pngיותאם לקידודי התווים שמתאימים לכתובות URL באופן הבא:pets%2Fcat.png.
-
המאמרים הבאים
- שינוי סוג האחסון של אובייקט.
- עריכת מטא-נתונים של אובייקט.
- הגדרת אובייקטים וקטגוריות כנגישים באופן ציבורי.
- מידע נוסף על הדרישות למתן שמות לאובייקטים.
- מידע על השימוש בתנאים מוקדמים כדי למנוע מרוץ תהליכים.