יצירה וניהול של משימות של פעולות בחבילות

בדף הזה מוסבר איך ליצור, להציג, לבטל ולמחוק משימות של פעולות בכמות גדולה ב-Storage. בנוסף, מוסבר איך להשתמש ביומני הביקורת של Cloud עם משימות של פעולות אצווה של אחסון.

לפני שמתחילים

כדי ליצור ולנהל משימות של פעולות אצווה באחסון, מבצעים את השלבים בקטעים הבאים.

הגדרת Storage Intelligence

כדי ליצור ולנהל משימות של פעולות אצווה באחסון, צריך להגדיר את Storage Intelligence בקטגוריה שבה רוצים להריץ את המשימה.

הפעלת ה-API

מפעילים את API של פעולות אצווה באחסון.

gcloud services enable storagebatchoperations.googleapis.com

יצירת קובץ מניפסט

אם רוצים להשתמש בקובץ מניפסט כדי לבחור אובייקטים, צריך ליצור קובץ מניפסט. שימוש במניפסט הוא אחת הדרכים לבחור אובייקטים לעיבוד במשימה של פעולות על פריטים מרובים באחסון.

יצירת משימה של פעולות אצווה באחסון

בקטע הזה מוסבר איך ליצור משימת פעולות אצווה באחסון.

כדי לקבל את ההרשאות שנדרשות ליצירת משימה של פעולות באצווה באחסון, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקטים שרוצים לבצע עליהם פעולות באצווה.

    הדף Bucket details נפתח עם הכרטיסייה Objects שנבחרה.

  3. לוחצים על יצירת פעולות בכמות גדולה.
  4. בחלונית Select operation, בוחרים את סוג הפעולה:
    • ניהול השהיות של אובייקטים: בוחרים באפשרות השהיה זמנית או השהיה מבוססת-אירועים. מידע נוסף זמין במאמר בנושא השהיות אובייקטים.
    • עדכון מטא-נתונים של אובייקט: כדי להוסיף מטא-נתונים של אובייקט, מבצעים את הפעולות הבאות:
      • כדי להוסיף מטא-נתונים מותאמים אישית, מבצעים את השלבים הבאים:
        1. בשדה Key (מפתח), מזינים שם של מפתח.
        2. בשדה ערך, מזינים ערך למפתח.
        3. אופציונלי: לוחצים על + הוספת פריט כדי להוסיף עוד צמדי מפתח/ערך.
      • כדי לעדכן מטא-נתונים עם מפתח קבוע, מבצעים את השלבים הבאים:
        1. כדי להרחיב את הקטע עדכון מטא-נתונים עם מַפְתח קבוע, לוחצים על החץ להרחבה .
        2. ברשימה Select one or more metadata to update, בוחרים את פריטי המטא-נתונים שרוצים לערוך.
    • עדכון או החלפה של מפתח ההצפנה: כדי להשתמש במפתח ההצפנה של האובייקטים או לעדכן אותו, מבצעים את הפעולות הבאות:
      1. ברשימה Select a Cloud KMS key, בוחרים מפתח הצפנה בניהול הלקוח (CMEK).
      2. אופציונלי: בוחרים באפשרות החלפת פרויקט כדי לבחור מפתח מפרויקט אחר, או באפשרות הזנת מפתח באופן ידני כדי למלא את הפרטים.
    • מחיקת אובייקטים: כדי למחוק אובייקטים, מבצעים את הפעולות הבאות:
      1. בדיקה אם התכונה 'ניהול גרסאות של אובייקטים' מופעלת
      2. אם התכונה 'ניהול גרסאות של אובייקטים' מופעלת, בוחרים באחת מאפשרויות המחיקה הבאות:

        • בוחרים באפשרות מחיקת כל הגרסאות של האובייקטים כדי להסיר גם את הגרסאות הפעילות וגם את הגרסאות הלא עדכניות.
        • בוחרים באפשרות מחיקה סופית של גרסאות פעילות כדי להסיר רק את הגרסה הפעילה.

        אם ניהול גרסאות של אובייקטים לא מופעל, כל האובייקטים שנבחרו למחיקה נמחקים באופן סופי.

  5. לוחצים על הבא.
  6. בחלונית Name operation & specify objects (מתן שם לפעולה וציון אובייקטים), מבצעים את הפעולות הבאות:
    1. בשדה שם, מזינים שם.
    2. אופציונלי: בשדה תיאור, מזינים תיאור.
    3. בקטע Specify objects (ציון אובייקטים), מגדירים קריטריון לעיבוד אובייקטים מהקטגוריה. בוחרים אחת מהאפשרויות הבאות:
      • בחירת כל האובייקטים: כוללת את כל האובייקטים בדלי.
      • בחירת אובייקטים באמצעות מסננים לפי קידומת: כדי להגדיר את רשימת האובייקטים באמצעות מסננים לפי קידומת, מבצעים את הפעולות הבאות:
        1. בשדה Enter Prefixes of the objects to be included (הזנת קידומות של האובייקטים שייכללו), מזינים קידומת.
        2. אופציונלי: לוחצים על + הוספת קידומת כדי לציין קידומות נוספות.
      • העלאת רשימות של אובייקטים באמצעות קובצי CSV של מניפסט: כדי להשתמש בקובץ מניפסט לבחירת אובייקטים, צריך לבצע את הפעולות הבאות:

        1. מעלים את קובץ ה-CSV של המניפסט לדלי. הקובץ הזה צריך להכיל כותרות של שם הקטגוריה, מפתח האובייקט ומספר דור.
        2. ברשימה Select manifest file mode, בוחרים באחת מהאפשרויות הבאות:
          • אם בוחרים באפשרות בחירת קובץ מניפסט מ-Cloud Storage, לוחצים על Browse בשדה בחירת קובץ מניפסט מ-Cloud Storage. בתיבת הדו-שיח בחירת אובייקט שמופיעה, מנווטים לקובץ ה-CSV של המניפסט ולוחצים על בחירה.
          • אם בוחרים באפשרות Select multiple manifest files using wildcard (בחירת כמה קובצי מניפסט באמצעות תוו כללי), מזינים את נתיב הקובץ בשדה Enter manifest file location using wildcard (הזנת מיקום קובץ המניפסט באמצעות תוו כללי). לדוגמה, bucket-name/folder/manifest_*.
  7. לוחצים על יצירה.

שורת הפקודה

  1. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. משתמשים בגרסה 516.0.0 ואילך של Google Cloud CLI.

  3. כדי להגדיר את פרויקט ברירת המחדל, מריצים את הפקודה gcloud config set project:

    gcloud config set project PROJECT_ID

    כאשר PROJECT_ID הוא מזהה הפרויקט.

  4. אופציונלי: מריצים עבודת הרצת בדיקה. לפני שמריצים עבודה, מומלץ להריץ אותה במצב בדיקה כדי לוודא שהקריטריונים לבחירת האובייקטים נכונים ולבדוק אם יש שגיאות. ההרצה היבשה לא משנה אף אובייקט.

    בסביבת הפיתוח, מריצים את הפקודה gcloud storage batch-operations jobs create עם הדגל --dry-run:

    gcloud storage batch-operations jobs create DRY_RUN_JOB_NAME \
    --bucket=BUCKET_NAME OBJECT_SELECTION_FLAG JOB_TYPE_FLAG \
    --dry-run

    ההרצה היבשה משתמשת באותם פרמטרים כמו העבודה בפועל. פרטים נוספים מופיעים במאמר תיאורי פרמטרים.

    כדי לראות את התוצאות של הרצת בדיקה, אפשר לעיין במאמר בנושא קבלת פרטים על משימות של פעולות באצווה באחסון.

  5. אחרי הרצת בדיקה מוצלחת, מריצים את הפקודה gcloud storage batch-operations jobs create.

    gcloud storage batch-operations jobs create JOB_NAME\
    --bucket=BUCKET_NAME OBJECT_SELECTION_FLAG JOB_TYPE_FLAG

    כאשר הפרמטרים הם:

    • DRY_RUN_JOB_NAME הוא השם של משימת ההרצה היבשה של פעולות אצווה באחסון.
    • JOB_NAME הוא השם של עבודת האחסון של פעולות אצווה.

    • BUCKET_NAME הוא השם של הקטגוריה שמכילה אובייקט אחד או יותר שרוצים לעבד.

    • OBJECT_SELECTION_FLAG הוא אחד מהדגלים הבאים שצריך לציין:

      • --included-object-prefixes: מציינים תחיליות של אובייקטים. לדוגמה:

        • כדי להתאים קידומת אחת, משתמשים ב: --included-object-prefixes='prefix1'.
        • כדי להתאים לכמה קידומות, משתמשים ברשימת קידומות שמופרדת בפסיקים: --included-object-prefixes='prefix1,prefix2'.
        • כדי לכלול את כל האובייקטים, משתמשים בתוספת לשם המאפיין ריקה: --included-object-prefixes=''.
      • --manifest-location: ציון המיקום של קובץ המניפסט. לדוגמה, gs://bucket_name/path/object_name.csv.

    • JOB_TYPE_FLAG הוא אחד מהדגלים הבאים שצריך לציין, בהתאם לסוג העבודה.

      • --delete-object: מחיקת אובייקט אחד או יותר.

        • אם ניהול גרסאות אובייקטים מופעל בקטגוריה, אובייקטים עדכניים עוברים למצב לא עדכני, ואובייקטים לא עדכניים נדלגים.

        • אם התכונה 'ניהול גרסאות של אובייקטים' מושבתת בקטגוריה, פעולת המחיקה מוחקת את האובייקטים באופן סופי ומדלגת על אובייקטים לא עדכניים.

      • --enable-permanent-object-deletion: מחיקה סופית של אובייקטים. משתמשים בדגל הזה יחד עם הדגל --delete-object כדי למחוק לצמיתות אובייקטים פעילים ולא עדכניים בקטגוריה, ללא קשר להגדרת ניהול הגרסאות של האובייקטים בקטגוריה.

      • --rewrite-object: עדכון מפתחות הצפנה בניהול הלקוח של אובייקט אחד או יותר.

      • --put-object-event-based-hold: הפעלת החזקות של אובייקטים שמבוססות על אירועים.

      • --no-put-object-event-based-hold: השבתה של החזקות אובייקטים מבוססות-אירועים.

      • --put-object-temporary-hold: הפעלת החזקות אובייקטים זמניות.

      • --no-put-object-temporary-hold: השבתה של החזקות אובייקטים זמניות.

        בדוגמה הבאה מוצג אופן יצירת משימה לעדכון המטא-נתונים של Content-Language ל-en עבור כל האובייקטים שמפורטים ב-manifest.csv.

        gcloud storage batch-operations jobs create my-job \
        --bucket=my-bucket \
        --manifest-location=gs://my-bucket/manifest.csv \
        --put-metadata=Content-Language=en
      • --put-metadata: עדכון מטא-נתונים של אובייקט. מציינים את צמד מפתח/ערך של מטא-נתוני האובייקט שרוצים לשנות. אפשר לציין צמד מפתח/ערך אחד או יותר כרשימה. אפשר גם להגדיר הגדרות לשמירת אובייקטים באמצעות הדגל --put-metadata. כדי לעשות זאת, מציינים את פרמטרי השמירה באמצעות השדות Retain-Until ו-Retention-Mode. לדוגמה,

        gcloud storage batch-operations jobs create my-job \
        --bucket=my-bucket \
        --manifest-location=gs://my-bucket/manifest.csv \
        --put-metadata=Retain-Until=RETAIN_UNTIL_TIME, Retention-Mode=RETENTION_MODE

        כאשר:

        • RETAIN_UNTIL_TIME הוא התאריך והשעה, בפורמט RFC 3339, עד אליהם האובייקט נשמר. לדוגמה: 2025-10-09T10:30:00Z. כדי להגדיר את הגדרות השמירה של אובייקט, צריך להפעיל שמירה בקטגוריה שמכילה את האובייקט.

        • RETENTION_MODE הוא מצב שמירת הנתונים, Unlocked או Locked.

          כששולחים בקשה לעדכון השדות RETENTION_MODE ו-RETAIN_UNTIL_TIME, חשוב לשים לב לנקודות הבאות:

          • כדי לעדכן את הגדרת השמירה של האובייקט, צריך לספק ערכים לא ריקים לשדות RETENTION_MODE ו-RETAIN_UNTIL_TIME. הגדרה של אחד מהם בלבד תגרום לשגיאה INVALID_ARGUMENT.
          • אפשר להאריך את הערך של RETAIN_UNTIL_TIME לאובייקטים במצבים Unlocked או Locked.
          • אם רוצים לבצע את הפעולות הבאות, תקופת השמירה של האובייקט צריכה להיות במצב Unlocked:
            • מפחיתים את הערך של RETAIN_UNTIL_TIME.
            • מסירים את הגדרת השמירה. כדי להסיר את ההגדרה, צריך לספק ערכים ריקים בשדות RETENTION_MODE ו-RETAIN_UNTIL_TIME.
          • אם תשמיטו את שני השדות RETENTION_MODE ו-RETAIN_UNTIL_TIME, הגדרת השמירה לא תשתנה.

      • --clear-all-object-custom-contexts: מחיקה של כל הקשרים של האובייקטים הקיימים.

        בדוגמה הבאה מוצג אופן יצירת משימה לניקוי כל ההקשרים של האובייקטים שמופיעים ב-manifest.csv:

        gcloud storage batch-operations jobs create my-job \
        --bucket=my-bucket \
        --manifest-location=gs://my-bucket/manifest.csv \
        --clear-all-object-custom-contexts
      • --clear-object-custom-contexts: הסרת הקשרים עם מפתחות ספציפיים. אפשר גם לעדכן הקשרים ספציפיים ולהסיר מפתחות באמצעות הדגל --clear-object-custom-contexts ואחד מהדגלים הבאים:

        • --update-object-custom-contexts: מספקים מיפוי של צמדי מפתח/ערך.

          בדוגמה הבאה מוצג אופן יצירת משימה להסרת ההקשר עם המפתח temp-id ולעדכון או להוספה של הקשר עם המפתחות project-id ו-cost-center לכל האובייקטים שמפורטים ב-manifest.csv:

          gcloud storage batch-operations jobs create my-job \
          --bucket=my-bucket \
          --manifest-location=gs://my-bucket/manifest.csv \
          --clear-object-custom-contexts=temp-id \
          --update-object-custom-contexts=project-id=project-A,cost-center=engineering
        • --update-object-custom-contexts-file: מציינים את הנתיב לקובץ JSON או YAML עם צמדי מפתח-ערך.

          בדוגמה הבאה מוצג אופן יצירת עבודה לעיבוד אובייקטים שמוגדרים ב-manifest.csv. העבודה מבצעת את הפעולות הבאות:

          • מסיר את כל ההקשרים באמצעות המקש temp-id.

          • מעדכנת הקשרים הקיימים באמצעות המפתחות project-id ו-cost-center שמוגדרים בקובץ /tmp/context_updates.json.

          gcloud storage batch-operations jobs create my-job \
          --bucket=my-bucket \
          --manifest-location=gs://my-bucket/manifest.csv \
          --clear-object-custom-contexts=temp-id \
          --update-object-custom-contexts-file=/tmp/context_updates.json

          כאשר /tmp/context_updates.json מכיל את ההקשרים הבאים של האובייקט:

          {
          "project-id": {"value": "project-A"},
          "cost-center": {"value": "engineering"}
          }

ספריות לקוח

C++

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

[](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
       client,
   std::string const& project_id, std::string const& job_id,
   std::string const& target_bucket_name, std::string const& object_prefix) {
  auto const parent =
      std::string{"projects/"} + project_id + "/locations/global";
  namespace sbo = google::cloud::storagebatchoperations::v1;
  sbo::Job job;
  sbo::BucketList* bucket_list = job.mutable_bucket_list();
  sbo::BucketList::Bucket* bucket_config = bucket_list->add_buckets();
  bucket_config->set_bucket(target_bucket_name);
  sbo::PrefixList* prefix_list_config = bucket_config->mutable_prefix_list();
  prefix_list_config->add_included_object_prefixes(object_prefix);
  sbo::DeleteObject* delete_object_config = job.mutable_delete_object();
  delete_object_config->set_permanent_object_deletion_enabled(false);
  auto result = client.CreateJob(parent, job, job_id).get();
  if (!result) throw result.status();
  std::cout << "Created job: " << result->name() << "\n";
}

PHP

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
use Google\Cloud\StorageBatchOperations\V1\CreateJobRequest;
use Google\Cloud\StorageBatchOperations\V1\Job;
use Google\Cloud\StorageBatchOperations\V1\BucketList;
use Google\Cloud\StorageBatchOperations\V1\BucketList\Bucket;
use Google\Cloud\StorageBatchOperations\V1\PrefixList;
use Google\Cloud\StorageBatchOperations\V1\DeleteObject;

/**
 * Create a new batch job.
 *
 * @param string $projectId Your Google Cloud project ID.
 *        (e.g. 'my-project-id')
 * @param string $jobId A unique identifier for this job.
 *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
 * @param string $bucketName The name of your Cloud Storage bucket to operate on.
 *        (e.g. 'my-bucket')
 * @param string $objectPrefix The prefix of objects to include in the operation.
 *        (e.g. 'prefix1')
 */
function create_job(string $projectId, string $jobId, string $bucketName, string $objectPrefix): void
{
    // Create a client.
    $storageBatchOperationsClient = new StorageBatchOperationsClient();

    $parent = $storageBatchOperationsClient->locationName($projectId, 'global');

    $prefixListConfig = new PrefixList(['included_object_prefixes' => [$objectPrefix]]);
    $bucket = new Bucket(['bucket' => $bucketName, 'prefix_list' => $prefixListConfig]);
    $bucketList = new BucketList(['buckets' => [$bucket]]);

    $deleteObject = new DeleteObject(['permanent_object_deletion_enabled' => false]);

    $job = new Job(['bucket_list' => $bucketList, 'delete_object' => $deleteObject]);

    $request = new CreateJobRequest([
        'parent' => $parent,
        'job_id' => $jobId,
        'job' => $job,
    ]);
    $response = $storageBatchOperationsClient->createJob($request);

    printf('Created job: %s', $response->getName());
}

ממשקי API ל-REST

‫API בפורמט JSON

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. יוצרים קובץ JSON עם ההגדרות של העבודה של פעולות אצווה באחסון. אלו ההגדרות הנפוצות שצריך לכלול:

    {
        "Description": "JOB_DESCRIPTION",
        "BucketList":
        {
        "Buckets":
        [
         {
           "Bucket": "BUCKET_NAME",
           "Manifest": {
              "manifest_location": "MANIFEST_LOCATION"
               }
           "PrefixList": {
              "include_object_prefixes": "OBJECT_PREFIXES"
               }
         }
        ]
        },
        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
         }
        "RewriteObject": {
          "kms_key":"KMS_KEY_VALUE"
          }
        "PutMetadata":{
          "METADATA_KEY": "METADATA_VALUE",
          ...,
          "objectRetention": {
              "retainUntilTime": "RETAIN_UNTIL_TIME",
              "mode": "RETENTION_MODE"
             }
           }
        "PutObjectHold": {
          "temporary_hold": TEMPORARY_HOLD_VALUE,
          "event_based_hold": EVENT_BASED_HOLD_VALUE
        },
        "updateObjectCustomContext": {
           "customContextUpdates": {
              "updates": {
                 "CONTEXT_KEY": { "value": "CONTEXT_VALUE" }
              },
              "keysToClear": ["CONTEXT_KEY_TO_CLEAR"]
           },
           "clearAll": CLEAR_ALL_VALUE
        },
        "dryRun": DRY_RUN_VALUE
        }
         

    כאשר:

    • JOB_NAME הוא השם של עבודת האחסון של פעולות אצווה.

    • JOB_DESCRIPTION הוא התיאור של עבודת האחסון של פעולות אצווה.

    • BUCKET_NAME הוא שם הקטגוריה שמכילה אובייקט אחד או יותר שרוצים לעבד.

    • כדי לציין את האובייקטים שרוצים לעבד, משתמשים באחד מהמאפיינים הבאים בקובץ ה-JSON:

      • MANIFEST_LOCATION הוא המיקום של manifest. לדוגמה, gs://bucket_name/path/object_name.csv.

      • OBJECT_PREFIXES היא רשימה מופרדת בפסיקים שמכילה קידומת אובייקט אחת או יותר. כדי להתאים לכל האובייקטים, משתמשים ברשימה ריקה.

    • בהתאם לעבודה שרוצים לעבד, מציינים אחת מהאפשרויות הבאות:

      • מחיקת אובייקטים:

        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
        }

        כאשר OBJECT_DELETION_VALUE הוא TRUE למחיקת אובייקטים.

      • עדכון מפתח הצפנה בניהול הלקוח לאובייקטים:

        "RewriteObject":
        {
        "kms_key": KMS_KEY_VALUE
        }

        כאשר KMS_KEY_VALUE הוא הערך של מפתח ה-KMS של האובייקט שרוצים לעדכן.

      • עדכון מטא-נתונים של אובייקטים:

        "PutMetadata": {
         "METADATA_KEY": "METADATA_VALUE",
         ...,
        "objectRetention": {
           "retainUntilTime": "RETAIN_UNTIL_TIME",
           "mode": "RETENTION_MODE"
         }
        }

        כאשר:

        • METADATA_KEY/VALUE הוא צמד מפתח/ערך של המטא-נתונים של האובייקט. אפשר לציין זוג אחד או יותר.
        • RETAIN_UNTIL_TIME הוא התאריך והשעה, בפורמט RFC 3339, עד אליהם האובייקט נשמר. לדוגמה, 2025-10-09T10:30:00Z. כדי להגדיר את הגדרות השמירה באובייקט, צריך להפעיל שמירה בקטגוריה שמכילה את האובייקט.
        • RETENTION_MODE הוא מצב שמירת הנתונים, Unlocked או Locked.

          כששולחים בקשה לעדכון השדות RETENTION_MODE ו-RETAIN_UNTIL_TIME, חשוב לשים לב לנקודות הבאות:

          • כדי לעדכן את הגדרת השמירה של האובייקט, צריך לספק ערכים לא ריקים לשדות RETENTION_MODE ו-RETAIN_UNTIL_TIME. הגדרה של אחד מהם בלבד תגרום לשגיאה INVALID_ARGUMENT.
          • אפשר להאריך את הערך של RETAIN_UNTIL_TIME לאובייקטים במצבים Unlocked או Locked.
          • אם רוצים לבצע את הפעולות הבאות, תקופת השמירה של האובייקט צריכה להיות במצב Unlocked:
            • מפחיתים את הערך של RETAIN_UNTIL_TIME.
            • מסירים את הגדרת השמירה. כדי להסיר את ההגדרה, צריך לספק ערכים ריקים בשדות RETENTION_MODE ו-RETAIN_UNTIL_TIME.
          • אם תשמיטו את שני השדות RETENTION_MODE ו-RETAIN_UNTIL_TIME, הגדרת השמירה לא תשתנה.
        • עדכון החזקות אובייקטים:

          "PutObjectHold": {
          "temporary_hold": TEMPORARY_HOLD_VALUE,
          "event_based_hold": EVENT_BASED_HOLD_VALUE
          }

          כאשר:

          • המאפיין TEMPORARY_HOLD_VALUE משמש להפעלה או להשבתה של דגל object hold זמני. הערך 1 מפעיל את ההקפאה, והערך 2 משבית אותה.

          • EVENT_BASED_HOLD_VALUE משמש להפעלה או להשבתה של דגל object hold מבוסס-אירועים. הערך 1 מפעיל את ההקפאה, והערך 2 משבית אותה.

        • עדכון הקשרים של האובייקט:

          "updateObjectCustomContext": {
          "customContextUpdates": {
            "updates": {
              "CONTEXT_KEY": { "value": "CONTEXT_VALUE" }
            },
            "keysToClear": ["CONTEXT_KEY_TO_CLEAR"]
          },
          "clearAll": CLEAR_ALL_VALUE
          }

          כאשר:

          • CONTEXT_KEY הוא מפתח ההקשר של האובייקט שרוצים להוסיף או לעדכן.
          • CONTEXT_VALUE הוא ערך ההקשר של האובייקט עבור המפתח.
          • CONTEXT_KEY_TO_CLEAR הוא המפתח שרוצים להסיר.
          • CLEAR_ALL_VALUE מוגדר ל-true כדי למחוק את כל ההקשרים הקיימים של האובייקטים.
      • DRY_RUN_VALUE הוא ערך בוליאני אופציונלי. מגדירים את הערך true כדי להריץ את העבודה במצב פרימטר לבדיקות. ערך ברירת המחדל הוא false.

    • משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של משימת פעולות אצווה לאחסון POST:

      curl -X POST --data-binary @JSON_FILE_NAME \
       -H "Authorization: Bearer $(gcloud auth print-access-token)" \
       -H "Content-Type: application/json" \
       "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs?job_id=JOB_NAME"

      כאשר:

      • JSON_FILE_NAME הוא השם של קובץ ה-JSON.
      • PROJECT_ID הוא המזהה או המספר של הפרויקט. לדוגמה, my-project.
      • JOB_NAME הוא השם של עבודת האחסון של פעולות אצווה.

קבלת פרטים על משימות של פעולות באצווה ב-Storage

בקטע הזה מוסבר איך מקבלים את פרטי העבודה של פעולות באצווה באחסון.

כדי לקבל את ההרשאות שנדרשות לצפייה במשימת פעולות באצווה של אחסון, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמשויכת לפעולה.
  3. בדף Bucket details, לוחצים על הכרטיסייה Operations.
  4. ברשימת הפעולות, לוחצים על מזהה הפעולה של העבודה שרוצים לראות.
  5. בדף הפרטים מוצגים מדדים של העבודה בכרטיסייה סקירה כללית, כמו אובייקטים שזוהו, אובייקטים שעברו עיבוד ושגיאות שהתרחשו.
  6. בטבלה סיכום השגיאות, בודקים את פרטי הכשל בביצוע או לוחצים על הצגה ב-Cloud Logging כדי לראות את הרשומות.
  7. כדי לראות את הגדרות ההגדרה של העבודה, לוחצים על הכרטיסייה Configuration.

שורת הפקודה

  1. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. בסביבת הפיתוח, מריצים את הפקודה gcloud storage batch-operations jobs describe.

    gcloud storage batch-operations jobs describe JOB_ID

    כאשר:

    JOB_ID הוא השם של עבודת האחסון של פעולות אצווה.

    כשמריצים הרצה יבשה של משימה, הפלט כולל את השדות הבאים:

    • totalObjectCount: מוצג מספר האובייקטים שתואמים לקריטריונים שלכם.
    • errorSummaries: מציג רשימה של שגיאות שנמצאו במהלך הרצת הבדיקה, כמו בעיות בהרשאות או הגדרות לא תקינות.
    • totalBytesFound: אם משתמשים בתחיליות של אובייקטים לבחירת אובייקטים, העבודה מציגה גם את הגודל הכולל של האובייקטים שיושפעו.

    אם הפעולה בוצעה ללא שגיאות, התגובה לגבי ההרצה היבשה תיראה דומה לדוגמה הבאה:

      bucketList:
        buckets:
        - bucket: my-bucket
          manifest:
            manifestLocation: gs://my-bucket/manifest.csv
      completeTime: '2025-10-27T23:56:32Z'
      counters:
        totalObjectCount: '4'
      createTime: '2025-10-27T23:56:22.243528568Z'
      dryRun: true
      name: projects/my-project/locations/global/jobs/my-job
      putMetadata:
        contentLanguage: en
      state: SUCCEEDED
    

    תשובה תקינה לגבי משימה לא כוללת את השדה dryRun ומחזירה את המדדים הבאים בשדה counters:

    • המספר הכולל של האובייקטים שנמצאו.
    • סך הבייטים שנמצאו כשמשתמשים בקידומות של אובייקטים.
    • טרנספורמציות אובייקטים שהושלמו בהצלחה.
    • שינויים באובייקט נכשלו, אם רלוונטי.
    • הקשרים של האובייקטים שנוצרו, אם רלוונטי.
    • הקשרים של האובייקט נמחקו, אם רלוונטי.
    • הקשרים של האובייקטים עודכנו, אם רלוונטי. המונה הזה עוקב אחרי עדכונים שבוצעו במפתחות הקשר הקיימים.

    התגובה להרצת משימה בפועל נראית בערך כך:

      bucketList:
        buckets:
        - bucket: my-bucket
          manifest:
            manifestLocation: gs://my-bucket/manifest.csv
      completeTime: '2025-10-31T20:19:42.357826655Z'
      counters:
        succeededObjectCount: '4'
        totalObjectCount: '4'
      createTime: '2025-10-31T20:19:22.016517077Z'
      name: projects/my-project/locations/global/jobs/my-job
      putMetadata:
        contentLanguage: en
      state: SUCCEEDED
      

ספריות לקוח

C++

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

[](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
       client,
   std::string const& project_id, std::string const& job_id) {
  auto const parent =
      std::string{"projects/"} + project_id + "/locations/global";
  auto const name = parent + "/jobs/" + job_id;
  auto job = client.GetJob(name);
  if (!job) throw job.status();
  std::cout << "Got job: " << job->name() << "\n";
}

PHP

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
use Google\Cloud\StorageBatchOperations\V1\GetJobRequest;

/**
 * Gets a batch job.
 *
 * @param string $projectId Your Google Cloud project ID.
 *        (e.g. 'my-project-id')
 * @param string $jobId A unique identifier for this job.
 *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
 */
function get_job(string $projectId, string $jobId): void
{
    // Create a client.
    $storageBatchOperationsClient = new StorageBatchOperationsClient();

    $parent = $storageBatchOperationsClient->locationName($projectId, 'global');
    $formattedName = $parent . '/jobs/' . $jobId;

    $request = new GetJobRequest([
        'name' => $formattedName,
    ]);

    $response = $storageBatchOperationsClient->getJob($request);

    printf('Got job: %s', $response->getName());
}

ממשקי API ל-REST

‫API בפורמט JSON

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים ב- cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של GET פעולות אצווה באחסון:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    כאשר:

    • PROJECT_ID הוא המזהה או המספר של הפרויקט. לדוגמה, my-project.
    • JOB_ID הוא השם של עבודת האחסון של פעולות אצווה.

    כשמריצים הרצה יבשה של משימה, הפלט כולל את השדות הבאים:

    • totalObjectCount: מוצג מספר האובייקטים שתואמים לקריטריונים שלכם.
    • errorSummaries: מציג רשימה של שגיאות שנמצאו במהלך הרצת הבדיקה, כמו בעיות בהרשאות או הגדרות לא תקינות.
    • totalBytesFound: אם משתמשים בתחיליות של אובייקטים לבחירת אובייקטים, העבודה מציגה גם את הגודל הכולל של האובייקטים שיושפעו.

    אם הפעולה בוצעה ללא שגיאות, התגובה של ההרצה היבשה תיראה דומה לדוגמה הבאה:

    {
      "name": "projects/my-project/locations/global/jobs/my-job",
      "description": "dry-run-job",
      "deleteObject": {
        "permanent_object_deletion_enabled": true
         },
      "createTime": "2025-10-28T00:26:53.900882459Z",
      "completeTime": "2025-10-28T00:27:04.101663275Z",
      "counters": {
          "totalObjectCount": "5",
          "totalBytesFound": "203"
        },
      "state": "SUCCEEDED",
      "bucketList": {
        "buckets": [
          {
            "bucket": "my-bucket",
            "prefixList": {
              "includedObjectPrefixes": [
                ""
              ]
            }
          }
        ]
      },
      "dryRun": true
    }
    

תשובה תקינה לגבי משימה לא כוללת את השדה dryRun ומחזירה את המדדים הבאים בשדה counters:

  • המספר הכולל של האובייקטים שנמצאו.
  • סך הבייטים שנמצאו כשמשתמשים בקידומות של אובייקטים.
  • טרנספורמציות אובייקטים שהושלמו בהצלחה.
  • שינויים באובייקט נכשלו, אם רלוונטי.
  • הקשרים של האובייקטים שנוצרו, אם רלוונטי.
  • הקשרים של האובייקט נמחקו, אם רלוונטי.
  • הקשרים של האובייקטים עודכנו, אם רלוונטי. המונה הזה עוקב אחרי עדכונים שבוצעו במפתחות הקשר הקיימים.

    התגובה להרצת משימה בפועל נראית בערך כך:

    {
    "name": "my-job",
    "description": "my-delete-objects-job",
    "deleteObject": {
      "permanent_object_deletion_enabled": true
    },
    "createTime": "2025-10-28T00:26:53.900882459Z",
    "completeTime": "2025-10-28T00:27:04.101663275Z",
    "counters": {
      "succeededObjectCount: "5"
      "totalObjectCount": "5",
      "totalBytesFound": "203"
    },
    "state": "SUCCEEDED",
    "bucketList": {
      "buckets": [
        {
          "bucket": "my-bucket",
          "prefixList": {
            "includedObjectPrefixes": [
              ""
            ]
          }
        }
      ]
    }
    }
    

הצגת רשימה של משימות של פעולות אצווה באחסון

בקטע הזה מוסבר איך להציג רשימה של משימות של פעולות אצווה של אחסון בפרויקט.

כדי לקבל את ההרשאות שנדרשות להצגת רשימת המשימות של פעולות באצווה ב-Storage, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Storage Admin (אדמין לניהול אחסון) (roles/storage.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמשויכת לפעולה.
  3. בדף Bucket details, לוחצים על הכרטיסייה Operations. בדף Operations מוצגת רשימה של פעולות פעילות שמתבצעות.

שורת הפקודה

  1. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. בסביבת הפיתוח, מריצים את הפקודה gcloud storage batch-operations jobs list.

    gcloud storage batch-operations jobs list

ספריות לקוח

C++

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

[](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
       client,
   std::string const& project_id) {
  auto const parent =
      std::string{"projects/"} + project_id + "/locations/global";
  for (auto const& job : client.ListJobs(parent)) {
    if (!job) throw job.status();
    std::cout << job->name() << "\n";
  }
}

PHP

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
use Google\Cloud\StorageBatchOperations\V1\ListJobsRequest;

/**
 * List Jobs in a given project.
 *
 * @param string $projectId Your Google Cloud project ID.
 *        (e.g. 'my-project-id')
 */
function list_jobs(string $projectId): void
{
    // Create a client.
    $storageBatchOperationsClient = new StorageBatchOperationsClient();

    $parent = $storageBatchOperationsClient->locationName($projectId, 'global');

    $request = new ListJobsRequest([
        'parent' => $parent,
    ]);

    $jobs = $storageBatchOperationsClient->listJobs($request);

    foreach ($jobs as $job) {
        printf('Job name: %s' . PHP_EOL, $job->getName());
    }
}

ממשקי API ל-REST

‫API בפורמט JSON

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים ב- cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של LIST פעולות באצווה באחסון:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs"

    כאשר:

    PROJECT_ID הוא המזהה או המספר של הפרויקט. לדוגמה, my-project.

ביטול של עבודת אצווה של אחסון

בקטע הזה מוסבר איך לבטל עבודת אחסון של פעולות בכמות גדולה בפרויקט.

כדי לקבל את ההרשאות שנדרשות לביטול של משימת פעולות באצווה ב-Storage, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמשויכת לפעולת העברת הנתונים בכמות גדולה שרוצים לבטל.

  3. לוחצים על הכרטיסייה פעולות. בכרטיסייה הזו מוצגת רשימה של משימות של פעולות בחבילה. אפשר לבטל רק משימות שנמצאות בתהליך.

  4. ברשימת הפעולות, בוחרים משימה אחת או יותר שרוצים לבטל ולוחצים על ביטול.

שורת הפקודה

  1. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. בסביבת הפיתוח, מריצים את הפקודה gcloud storage batch-operations jobs cancel.

    gcloud storage batch-operations jobs cancel JOB_ID

    כאשר:

    JOB_ID הוא השם של עבודת האחסון של פעולות אצווה.

ספריות לקוח

C++

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

[](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
       client,
   std::string const& project_id, std::string const& job_id) {
  auto const parent =
      std::string{"projects/"} + project_id + "/locations/global";
  auto const name = parent + "/jobs/" + job_id;
  auto response = client.CancelJob(name);
  if (!response) throw response.status();
  std::cout << "Cancelled job: " << name << "\n";
}

PHP

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
use Google\Cloud\StorageBatchOperations\V1\CancelJobRequest;

/**
 * Cancel a batch job.
 *
 * @param string $projectId Your Google Cloud project ID.
 *        (e.g. 'my-project-id')
 * @param string $jobId A unique identifier for this job.
 *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
 */
function cancel_job(string $projectId, string $jobId): void
{
    // Create a client.
    $storageBatchOperationsClient = new StorageBatchOperationsClient();

    $parent = $storageBatchOperationsClient->locationName($projectId, 'global');
    $formattedName = $parent . '/jobs/' . $jobId;

    $request = new CancelJobRequest([
        'name' => $formattedName,
    ]);

    $storageBatchOperationsClient->cancelJob($request);

    printf('Cancelled job: %s', $formattedName);
}

ממשקי API ל-REST

‫API בפורמט JSON

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים ב- cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של CANCEL עבודת אצווה של פעולות אחסון:

    curl -X CANCEL \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    כאשר:

    • PROJECT_ID הוא המזהה או המספר של הפרויקט. לדוגמה, my-project.

    • JOB_ID הוא השם של עבודת האחסון של פעולות אצווה.

מחיקה של משימת פעולות באצווה באחסון

בקטע הזה מוסבר איך למחוק עבודת אצווה של פעולות אחסון.

כדי לקבל את ההרשאות שנדרשות למחיקת משימה של פעולות באצווה ב-Storage, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על השם של הקטגוריה שמשויכת לפעולת האחסון באצווה שרוצים למחוק.

  3. לוחצים על הכרטיסייה פעולות. בכרטיסייה הזו מוצגת רשימה של משימות של פעולות בחבילה. אפשר למחוק רק משרות שלא פועלות, כמו משרות שהסתיימו בהצלחה, נכשלו או בוטלו.

  4. ברשימת הפעולות, בוחרים משימה אחת או יותר שרוצים למחוק ולוחצים על מחיקה.

שורת הפקודה

  1. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. בסביבת הפיתוח, מריצים את הפקודה gcloud storage batch-operations jobs delete.

    gcloud storage batch-operations jobs delete JOB_ID

    כאשר:

    JOB_ID הוא השם של עבודת האחסון של פעולות אצווה.

ספריות לקוח

C++

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

[](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
       client,
   std::string const& project_id, std::string const& job_id) {
  auto const parent =
      std::string{"projects/"} + project_id + "/locations/global";
  auto const name = parent + "/jobs/" + job_id;
  auto status = client.DeleteJob(name);
  if (!status.ok()) throw status;
  std::cout << "Deleted job: " << name << "\n";
}

PHP

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
use Google\Cloud\StorageBatchOperations\V1\DeleteJobRequest;

/**
 * Delete a batch job.
 *
 * @param string $projectId Your Google Cloud project ID.
 *        (e.g. 'my-project-id')
 * @param string $jobId A unique identifier for this job.
 *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
 */
function delete_job(string $projectId, string $jobId): void
{
    // Create a client.
    $storageBatchOperationsClient = new StorageBatchOperationsClient();

    $parent = $storageBatchOperationsClient->locationName($projectId, 'global');
    $formattedName = $parent . '/jobs/' . $jobId;

    $request = new DeleteJobRequest([
        'name' => $formattedName,
    ]);

    $storageBatchOperationsClient->deleteJob($request);

    printf('Deleted job: %s', $formattedName);
}

ממשקי API ל-REST

‫API בפורמט JSON

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים ב- cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של DELETE עבודת אצווה של פעולות אחסון:

    curl -X DELETE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    כאשר:

    • PROJECT_ID הוא המזהה או המספר של הפרויקט. לדוגמה, my-project.

    • JOB_ID הוא השם של עבודת האחסון של פעולות אצווה.

יצירת משימה של פעולות באצווה ב-Storage באמצעות מערכי נתונים של Storage Insights

כדי ליצור משימה של פעולות אצווה באחסון באמצעות מערכי נתונים של Storage Insights, מבצעים את השלבים שבקטעים הבאים.

כדי לקבל את ההרשאות שנדרשות ליצירת משימה של פעולות באצווה באחסון, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

יצירת קובץ מניפסט באמצעות מערכי נתונים של Storage Insights

אפשר ליצור את קובץ המניפסט של משימת פעולות אצווה באחסון על ידי חילוץ נתונים מ-BigQuery. כדי לעשות זאת, צריך להריץ שאילתה על מערך הנתונים המקושר, לייצא את הנתונים שמתקבלים כקובץ CSV ולשמור אותו בקטגוריה של Cloud Storage. אחר כך, אפשר להשתמש בקובץ ה-CSV הזה כקובץ מניפסט בעבודת אצווה של פעולות אחסון.

הפעלת שאילתת ה-SQL הבאה ב-BigQuery בתצוגת מערך נתונים של Storage Insights מאחזרת אובייקטים בגודל של יותר מ-1KiB ששמם הוא Temp_Training:

  EXPORT DATA OPTIONS(
   uri=`URI`,
   format=`CSV`,
   overwrite=OVERWRITE_VALUE,
   field_delimiter=',') AS
  SELECT bucket, name, generation
  FROM DATASET_VIEW_NAME
  WHERE bucket = BUCKET_NAME
  AND name LIKE (`Temp_Training%`)
  AND size > 1024 * 1024
  AND snapshotTime = SNAPSHOT_TIME
  

כאשר:

  • URI הוא ה-URI של הקטגוריה שמכילה את המניפסט. לדוגמה, gs://bucket_name/path_to_csv_file/*.csv. כשמשתמשים בתו כללי *.csv, מערכת BigQuery מייצאת את התוצאה לכמה קובצי CSV.
  • OVERWRITE_VALUE הוא ערך בוליאני. אם המדיניות מוגדרת כ-true, פעולת הייצוא מחליפה קבצים קיימים במיקום שצוין.
  • DATASET_VIEW_NAME הוא השם המוגדר במלואו של תצוגת מערך הנתונים של Storage Insights בפורמט PROJECT_ID.DATASET_ID.VIEW_NAME. כדי לראות את השם של מערך הנתונים, צופים במערך הנתונים המקושר.

    כאשר:

    • PROJECT_ID הוא המזהה או המספר של הפרויקט. לדוגמה, my-project.
    • DATASET_ID הוא שם מערך הנתונים. לדוגמה, objects-deletion-dataset.
    • VIEW_NAME הוא השם של תצוגת מערך הנתונים. לדוגמה, bucket_attributes_view.
  • BUCKET_NAME הוא שם הקטגוריה. לדוגמה, my-bucket.

  • SNAPSHOT_TIME הוא הזמן שבו נוצרה תמונת המצב של תצוגת מערך הנתונים ב-Storage Insights. לדוגמה, 2024-09-10T00:00:00Z.

יצירת משימת פעולות אצווה באחסון באמצעות קובץ מניפסט

כדי ליצור משימת אחסון של פעולות בכמות גדולה לעיבוד אובייקטים שמופיעים במניפסט, מבצעים את השלבים הבאים:

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקטים שרוצים לבצע עליהם פעולות באצווה.

    הדף Bucket details נפתח עם הכרטיסייה Objects שנבחרה.

  3. לוחצים על יצירת פעולות בכמות גדולה.
  4. בחלונית Select operation, בוחרים את סוג הפעולה:
    • ניהול השהיות של אובייקטים: בוחרים באפשרות השהיה זמנית או השהיה מבוססת-אירועים. מידע נוסף זמין במאמר בנושא השהיות אובייקטים.
    • עדכון מטא-נתונים של אובייקט: כדי להוסיף מטא-נתונים של אובייקט, מבצעים את הפעולות הבאות:
      • כדי להוסיף מטא-נתונים מותאמים אישית, מבצעים את השלבים הבאים:
        1. בשדה Key (מפתח), מזינים שם של מפתח.
        2. בשדה ערך, מזינים ערך למפתח.
        3. אופציונלי: לוחצים על + הוספת פריט כדי להוסיף עוד צמדי מפתח/ערך.
      • כדי לעדכן מטא-נתונים עם מפתח קבוע, מבצעים את השלבים הבאים:
        1. כדי להרחיב את הקטע עדכון מטא-נתונים עם מַפְתח קבוע, לוחצים על החץ להרחבה .
        2. ברשימה Select one or more metadata to update, בוחרים את פריטי המטא-נתונים שרוצים לערוך.
    • עדכון או החלפה של מפתח ההצפנה: כדי להשתמש במפתח ההצפנה של האובייקטים או לעדכן אותו, מבצעים את הפעולות הבאות:
      1. ברשימה Select a Cloud KMS key, בוחרים מפתח הצפנה בניהול הלקוח (CMEK).
      2. אופציונלי: בוחרים באפשרות החלפת פרויקט כדי לבחור מפתח מפרויקט אחר, או באפשרות הזנת מפתח באופן ידני כדי למלא את הפרטים.
    • מחיקת אובייקטים: כדי למחוק אובייקטים, מבצעים את הפעולות הבאות:
      1. בדיקה אם התכונה 'ניהול גרסאות של אובייקטים' מופעלת
      2. אם התכונה 'ניהול גרסאות של אובייקטים' מופעלת, בוחרים באחת מאפשרויות המחיקה הבאות:

        • בוחרים באפשרות מחיקת כל הגרסאות של האובייקטים כדי להסיר גם את הגרסאות הפעילות וגם את הגרסאות הלא עדכניות.
        • בוחרים באפשרות מחיקה סופית של גרסאות פעילות כדי להסיר רק את הגרסה הפעילה.

        אם ניהול גרסאות של אובייקטים לא מופעל, כל האובייקטים שנבחרו למחיקה נמחקים באופן סופי.

  5. לוחצים על הבא.
  6. בחלונית Name operation & specify objects (מתן שם לפעולה וציון אובייקטים), מבצעים את הפעולות הבאות:
    1. בשדה שם, מזינים שם.
    2. אופציונלי: בשדה תיאור, מזינים תיאור.
    3. בקטע Specify objects (ציון אובייקטים), בוחרים באפשרות Upload lists of objects using manifest CSV files (העלאת רשימות של אובייקטים באמצעות קובצי CSV של מניפסט), ואז מבצעים את הפעולות הבאות:

      1. מעלים את קובץ ה-CSV של המניפסט לדלי. הקובץ הזה צריך להכיל כותרות של שם הקטגוריה, מפתח האובייקט ומספר דור.
      2. ברשימה Select manifest file mode, בוחרים באחת מהאפשרויות הבאות:
        • אם בוחרים באפשרות בחירת קובץ מניפסט מ-Cloud Storage, לוחצים על Browse בשדה בחירת קובץ מניפסט מ-Cloud Storage. בתיבת הדו-שיח בחירת אובייקט שמופיעה, מנווטים לקובץ ה-CSV של המניפסט ולוחצים על בחירה.
        • אם בוחרים באפשרות Select multiple manifest files using wildcard (בחירת כמה קובצי מניפסט באמצעות תוו כללי), מזינים את נתיב הקובץ בשדה Enter manifest file location using wildcard (הזנת מיקום קובץ המניפסט באמצעות תוו כללי). לדוגמה, bucket-name/folder/manifest_*.
  7. לוחצים על יצירה.

שורת הפקודה

  1. במסוף Cloud de Confiance , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. בסביבת הפיתוח, מריצים את הפקודה gcloud storage batch-operations jobs create:

    gcloud storage batch-operations jobs create \
    JOB_ID \
    --bucket=SOURCE_BUCKET_NAME \
    --manifest-location=URI \
    JOB_TYPE_FLAG

    כאשר:

    • JOB_ID הוא השם של עבודת האחסון של פעולות אצווה.

    • SOURCE_BUCKET_NAME היא הקטגוריה שמכילה אובייקט אחד או יותר שרוצים לעבד. לדוגמה, my-bucket.

    • URI הוא ה-URI של הקטגוריה שמכילה את המניפסט. לדוגמה, gs://bucket_name/path_to_csv_file/*.csv. כשמשתמשים בתו כללי *.csv, מערכת BigQuery מייצאת את התוצאה לכמה קובצי CSV.

    • JOB_TYPE_FLAG הוא אחד מהדגלים הבאים, בהתאם לסוג העבודה.

      • --clear-all-object-custom-contexts: מחיקה של כל הקשרים של האובייקטים הקיימים.

        בדוגמה הבאה מוצג אופן יצירת משימה לניקוי כל ההקשרים של האובייקטים שמופיעים ב-manifest.csv:

        gcloud storage batch-operations jobs create my-job \
        --bucket=my-bucket \
        --manifest-location=gs://my-bucket/manifest.csv \
        --clear-all-object-custom-contexts
      • --clear-object-custom-contexts: הסרת הקשרים עם מפתחות ספציפיים. אפשר גם לעדכן הקשרים ספציפיים ולהסיר מפתחות באמצעות הדגל --clear-object-custom-contexts ואחד מהדגלים הבאים:

        • --update-object-custom-contexts: מספקים מיפוי של צמדי מפתח/ערך.

          בדוגמה הבאה מוצג אופן יצירת משימה להסרת ההקשר עם המפתח temp-id ולעדכון או להוספה של הקשר עם המפתחות project-id ו-cost-center לכל האובייקטים שמפורטים ב-manifest.csv:

          gcloud storage batch-operations jobs create my-job \
          --bucket=my-bucket \
          --manifest-location=gs://my-bucket/manifest.csv \
          --clear-object-custom-contexts=temp-id \
          --update-object-custom-contexts=project-id=project-A,cost-center=engineering
        • --update-object-custom-contexts-file: מציינים את הנתיב לקובץ JSON או YAML עם צמדי מפתח-ערך.

          בדוגמה הבאה מוצג אופן יצירת עבודה לעיבוד אובייקטים שמוגדרים ב-manifest.csv. העבודה מבצעת את הפעולות הבאות:

          • מסיר את כל ההקשרים באמצעות המקש temp-id.

          • מעדכנת הקשרים הקיימים באמצעות המפתחות project-id ו-cost-center שמוגדרים בקובץ /tmp/context_updates.json.

          gcloud storage batch-operations jobs create my-job \
          --bucket=my-bucket \
          --manifest-location=gs://my-bucket/manifest.csv \
          --clear-object-custom-contexts=temp-id \
          --update-object-custom-contexts-file=/tmp/context_updates.json

          כאשר /tmp/context_updates.json מכיל את ההקשרים הבאים של האובייקט:

          {
          "project-id": {"value": "project-A"},
          "cost-center": {"value": "engineering"}
          }

שילוב עם VPC Service Controls

אתם יכולים להוסיף עוד שכבת אבטחה למשאבים של פעולות אצווה של אחסון בעזרת VPC Service Controls. כשמשתמשים ב-VPC Service Controls, מוסיפים פרויקטים לגבולות גזרה לשירות שמגינים על המשאבים והשירותים מפני בקשות שמקורן מחוץ לגבולות הגזרה. מידע נוסף על פרטי גבולות גזרה לשירות של VPC Service Controls עבור פעולות אצווה של אחסון זמין במאמר מוצרים נתמכים ומגבלות.

שימוש ביומני הביקורת של Cloud למשימות של פעולות אצווה ב-Storage

משימות של פעולות אצווה באחסון מתעדות טרנספורמציות באובייקטים של Cloud Storage ביומני הביקורת של Cloud ב-Cloud Storage. אפשר להשתמש ביומני הביקורת של Cloud עם Cloud Storage כדי לעקוב אחרי השינויים באובייקטים שמתבצעים על ידי משימות של פעולות אצווה ב-Cloud Storage. מידע על הפעלת יומני ביקורת מופיע במאמר הפעלת יומני ביקורת. ברשומה ביומן הביקורת, שדה המטא-נתונים callUserAgent עם הערך StorageBatchOperations מציין טרנספורמציה של פעולות אצווה של אחסון.

השלבים הבאים