בדף הזה מוסבר איך להעתיק אובייקטים, לשנות את השם שלהם ולהעביר אותם. בכלים מסוימים מתבצעות פעולות אטומיות של העברת אובייקטים, ובכלים אחרים מתבצעת סימולציה של פעולת העברת אובייקט על ידי העתקת האובייקט למיקום חדש שצוין, ואז מחיקת האובייקט המקורי.
- איך מעתיקים אובייקטים
- במאמר העברה או שינוי שם של אובייקטים באמצעות העתקה מוסבר איך להעביר או לשנות שם של אובייקטים באמצעות העתקה.
- הוראות לשינוי שמות של אובייקטים באופן אטומי מופיעות במאמר שינוי שמות של אובייקטים באופן אטומי.
לפני שמתחילים
כדי להעתיק, לשנות את השם או להעביר אובייקטים, צריך לקבל את תפקידי ה-IAM הנדרשים. בקטעים הבאים מתוארות דרישות IAM לתרחישים שונים לדוגמה.
העתקת אובייקטים (כולל העברה או שינוי שם באמצעות העתקה)
כדי לקבל את ההרשאות שדרושות להעתקת אובייקטים, בקשו מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בקטגוריית המקור שמכילה את האובייקטים שאתם רוצים להעביר, או בקטגוריית היעד שאליה אתם רוצים להעביר את האובייקטים:
- צפייה באובייקטים של אחסון (
roles/storage.objectViewer) בקטגוריית המקור - Storage Object User (
roles/storage.objectUser) בקטגוריית היעד -
כדי להעתיק אובייקטים באמצעות מסוף Cloud de Confiance :
התפקיד הבסיסי "צפייה" (
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(נדרשת רק אם מעתיקים, מעבירים או משנים את השם של אובייקט באמצעות מסוף Cloud de Confiance ) בקטגוריות המקור והיעד -
storage.buckets.list(נדרשת רק אם מעתיקים, מעבירים או משנים שם של אובייקט באמצעות מסוף Cloud de Confiance ) בפרויקט שמכיל את קטגוריות המקור והיעד
אפשר לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות. במאמר ניהול הגישה לפרויקטים מוסבר איך מקצים תפקידים בפרויקטים.
אם באובייקט שרוצים להעתיק מופעלות תכונות מסוימות, יכול להיות שתצטרכו תפקידים נוספים או חלופיים. לדוגמה, אם לאובייקט שרוצים להעתיק יש הגדרת שמירה שרוצים לשמור, צריך תפקיד בקטגוריית היעד שכולל את ההרשאה storage.objects.setRetention, כמו התפקיד Storage Object Admin (roles/storage.objectAdmin).
מידע נוסף זמין במאמר הרשאות IAM ל-Cloud Storage.
שינוי שמות של אובייקטים באופן אטומי
כדי לקבל את ההרשאות שדרושות לשינוי שם של אובייקטים באופן אטומי, בקשו מהאדמין לתת לכם את התפקיד משתמש באובייקטים של אחסון (roles/storage.objectUser) ב-IAM בקטגוריה שמכילה את האובייקט שאתם רוצים לשנות את השם שלו.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות לשינוי שמות של אובייקטים באופן אטומי. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לשנות שמות של אובייקטים באופן אטומי, נדרשות ההרשאות הבאות:
-
storage.objects.move -
storage.objects.create -
storage.objects.delete(נדרש רק אם מחליפים אובייקט)
אפשר לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות.
העתקת אובייקטים
בקטע הזה מוסבר איך להעתיק אובייקטים. אפשר להעתיק אובייקטים מקטגוריה אחת לאחרת.
המסוף
- במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק.
הדף Bucket details נפתח עם הכרטיסייה Objects שנבחרה.
עוברים אל האובייקט, שאולי יהיה ממוקם בתיקייה.
לוחצים על התפריט Object overflow (more_vert) שמשויך לאובייקט.
לוחצים על Copy.
מופיעה החלונית Copy object.
בשדה Destination, מקלידים את השם של קטגוריית היעד ואת השם לאובייקט שמעתיקים.
אפשר גם ללחוץ על Browse כדי לבחור את היעד, אבל אפשרויות הבחירה מוגבלות לקטגוריות בפרויקט הנוכחי.
לוחצים על Copy.
במאמר פתרון בעיות מוסבר איך מקבלים מידע מפורט על שגיאות בנושא פעולות ב-Cloud Storage שנכשלו במסוף Cloud de Confiance .
שורת הפקודה
משתמשים בפקודה 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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
C#
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C# API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Go
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Go API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Node.js API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
PHP
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Python API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Ruby
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Ruby API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Rust
ממשקי 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.s3nsapis.fr/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.s3nsapis.fr/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.s3nsapis.fr/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.
-
העברה או שינוי שם של אובייקטים באמצעות העתקה
כאן מוסבר איך להעביר אובייקטים או לשנות את השם שלהם באמצעות פעולות בסיסיות של העתקת אובייקטים. הכלים שמתוארים בקטע הזה מעבירים אובייקטים ומשנים את השמות שלהם על ידי העתקת האובייקט המקורי למרחב שמות אחר, ואז מחיקת האובייקט המקורי.
המסוף
- במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקט שרוצים להעביר.
הדף Bucket details נפתח עם הכרטיסייה Objects שנבחרה.
עוברים אל האובייקט, שאולי יהיה ממוקם בתיקייה.
לוחצים על התפריט Object overflow (more_vert) שמשויך לאובייקט.
אם רוצים לתת לאובייקט שם חדש באותה קטגוריה, לוחצים על Rename.
בחלון שכבת-העל שמופיע, מזינים שם חדש לאובייקט.
לוחצים על Rename.
אם רוצים להעביר את האובייקט לקטגוריה אחרת, לוחצים על Move.
בחלון שכבת-העל שמופיע, לוחצים על Browse.
בוחרים את היעד לאובייקט שרוצים להעביר.
לוחצים על Select.
לוחצים על Move.
במאמר פתרון בעיות מוסבר איך מקבלים מידע מפורט על שגיאות בנושא פעולות ב-Cloud Storage שנכשלו במסוף Cloud de Confiance .
שורת הפקודה
משתמשים בפקודה 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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
C#
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C# API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Go
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Go API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Node.js API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
PHP
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Python API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Ruby
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Ruby API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Rust
ממשקי API בארכיטקטורת REST
API בפורמט JSON
הוראות להעברה או לשינוי שם של אובייקטים באמצעות העתקה ב-API בפורמט JSON מופיעות במאמר העתקת אובייקטים.
API בפורמט XML
במאמר העתקת אובייקטים מוסבר איך להעביר אובייקטים או לשנות את השם שלהם באמצעות העתקה ב-API בפורמט XML.
שינוי שמות של אובייקטים באופן אטומי
בקטע הזה מוסבר איך לשנות שמות של אובייקטים בקטגוריה באופן אטומי.
כדי לשנות שם של אובייקט, אפשר להשתמש ב-method 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.s3nsapis.fr/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.
-
המאמרים הבאים
- שינוי סוג האחסון של אובייקט.
- עריכת מטא-נתונים של אובייקט.
- הגדרת אובייקטים וקטגוריות כנגישים באופן ציבורי.
- מידע נוסף על הדרישות למתן שמות לאובייקטים.
- מידע על השימוש בתנאים מוקדמים כדי למנוע מרוץ תהליכים.