שימוש בהקשרים של אובייקטים

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

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

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות ליצירה ולניהול של הקשרי אובייקטים, בקשו מהאדמין להקצות לכם את התפקידים הבאים ב-IAM באובייקט:

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

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

ההרשאות הנדרשות

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

  • יוצרים אובייקט עם הקשרים של אובייקטים:
    • storage.objects.create
    • storage.objects.createContext
  • צירוף, עדכון ומחיקה של הקשרים של אובייקטים:
    • storage.objects.update
    • storage.objects.createContext
    • storage.objects.updateContext
    • storage.objects.deleteContext
  • הקשרים של הורדת אובייקטים: storage.objects.dropContexts
  • הצגת ההקשרים של האובייקטים:
    • storage.objects.get
    • storage.objects.list
  • לראות את ההקשר המלא של אובייקט, כולל נתונים מורחבים (תצוגה מקדימה): storage.objects.viewFullContext

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

דרישות למתן שמות לצמדי מפתח/ערך

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

  • צריך לכלול בין תו אחד ל-256 תווים (כולל).

  • חייב להתחיל בתו אלפאנומרי.

  • התו חייב להיות תו UTF-8 תקין. רוב התווים בתקן UTF-8 נתמכים, חוץ מהתווים הבאים:

    • גרש (')

    • מירכאות כפולות (")

    • לוכסן הפוך (\)

    • קו נטוי (/)

  • מפתחות הקשר שמתחילים בקידומת google: (לדוגמה, google:annotation:face-detector-v1) שמורים להקשרים שנוצרו על ידי Google. אי אפשר ליצור הקשרים חדשים עם הקידומת google: או לשנות את הערכים שלהם. אם תנסו לעשות את זה, Cloud Storage יחזיר את השגיאה INVALID_ARGUMENT. כדי להסיר הקשרים עם הקידומת google:, צריך למחוק אותם באמצעות הפרמטר dropContextGroups במהלך פעולת שכתוב.

צירוף הקשרים לאובייקטים חדשים

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

המסוף

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

    כניסה לדף Buckets

  2. מעלים את האובייקט.

  3. מצרפים הקשרים לאובייקט לפי השלבים.

שורת הפקודה

כדי לצרף הקשרים כשמעלים אובייקטים באמצעות הפקודה gcloud storage cp, משתמשים בדגל --custom-contexts:

gcloud storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME --custom-contexts=KEY=VALUE,...

כאשר:

  • ‫OBJECT_LOCATION הוא הנתיב המקומי לאובייקט. לדוגמה, Desktop/employees.txt.
  • ‫DESTINATION_BUCKET_NAME הוא שם הקטגוריה שאליה מעלים את האובייקט. לדוגמה, my-bucket.
  • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים.
  • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.

לחלופין, אפשר ליצור קובץ JSON שמכיל את ההקשרים שרוצים לצרף לאובייקטים, ולהשתמש בדגל --custom-contexts-file:

  {
    "KEY": {
      "value": "VALUE"
    },
    ...
  }

כאשר:

  • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department. אפשר לציין כמה צמדים של מפתח/ערך.
  • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.

כדי לצרף הקשרים כשמעלים ספריות באמצעות הפקודה gcloud storage rsync, משתמשים בדגל --custom-contexts או בדגל --custom-contexts-file:

gcloud storage rsync DIRECTORY_LOCATION gs://DESTINATION_BUCKET_NAME --recursive --custom-contexts=KEY=VALUE,...

כאשר:

  • ‫DIRECTORY_LOCATION הוא הנתיב המקומי לספרייה. לדוגמה, ~/my_directory.
  • ‫DESTINATION_BUCKET_NAME הוא שם הקטגוריה שאליה מעלים את הספרייה. לדוגמה, my-bucket.
  • ‫KEY הוא מפתח ההקשר שצריך לצרף לאובייקטים. לדוגמה, Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים.
  • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.

‫API בפורמט JSON

כדי לצרף הקשרים לאובייקטים כשמעלים אובייקטים חדשים, משתמשים באחת מהשיטות הבאות:

כחלק מהמטא-נתונים של האובייקט בפורמט JSON, כוללים את השדה contexts:

  {
    "contexts": {
      "custom": {
        "KEY": {
          "value": "VALUE"
        },
        ...
      }
    }
  }

כאשר:

  • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department. אפשר לציין כמה צמדי מפתח/ערך באובייקט custom.
  • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.

צירוף או שינוי של הקשרים באובייקט קיים

אתם יכולים לצרף הקשרים חדשים לאובייקטים או לעדכן הקשרים קיימים בקטגוריות של Cloud Storage.

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

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

המסוף

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

    כניסה לדף Buckets

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

  3. עוברים לאובייקט ולוחצים על Open object overflow menu.

  4. לוחצים על עריכת ההקשרים.

  5. בחלונית עריכת ההקשרים, מבצעים אחת מהפעולות הבאות:

    • הוספת הקשר חדש לאובייקט:

      1. לוחצים על הוספת הקשר מותאם אישית.

      2. בשדות Object context key ו-Object context value, מזינים צמד חדש של מפתח/ערך.

      3. לוחצים על סיום.

      4. אופציונלי: כדי להוסיף עוד הקשרים של אובייקטים, לוחצים על Add a custom context, חוזרים על השלבים הקודמים ולוחצים על Save.

    • עריכת הקשר של אובייקט:

      1. לוחצים על ההקשר של האובייקט.

      2. מעדכנים את השדה Object context key, את השדה Object context value או את שניהם.

      3. לוחצים על סיום ואז על שמירה.

    • מחיקת הקשר של אובייקט:

      לוחצים על Delete ואז על Save.

שורת הפקודה

משתמשים בפקודה gcloud storage objects update:

gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME CUSTOM_CONTEXTS_FLAG

כאשר:

  • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שאת ההקשר שלו רוצים לערוך. לדוגמה, my-bucket.
  • ‫OBJECT_NAME הוא שם האובייקט. לדוגמה, employees.txt.
  • ‫CUSTOM_CONTEXTS_FLAG הוא אחד מהדגלים הבאים:

    • כדי להחליף את כל ההקשרים הקיימים, משתמשים ב---custom-contexts=KEY=VALUE,... או ב---custom-contexts-file=CUSTOM_CONTEXTS_FILE.

      כאשר:

      • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים.
      • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.
      • ‫CUSTOM_CONTEXTS_FILE הוא הנתיב לקובץ JSON או YAML שמכיל את ההקשרים שרוצים לצרף לאובייקט.
    • כדי למחוק את כל ההקשרים הקיימים, משתמשים בדגל --clear-custom-contexts.

    • כדי להוסיף, לשנות או למחוק הקשרים ספציפיים, משתמשים בשילוב של --update-custom-contexts=KEY=VALUE,... ו---remove-custom-contexts=KEY,....

      כאשר:

      • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט או למחוק ממנו. לדוגמה, Department.
      • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר שרוצים לצרף לאובייקט או למחוק ממנו. לדוגמה, Human resources.

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

Patching gs://my-bucket/employees.txt#1560574162144861...
  Completed 1

ספריות לקוח

Java

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

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


import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.BlobInfo;
import com.google.cloud.storage.BlobInfo.ObjectContexts;
import com.google.cloud.storage.BlobInfo.ObjectCustomContextPayload;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import com.google.common.collect.Maps;
import java.util.Map;

public class SetObjectContexts {
  public static void setObjectContexts(
      String projectId, String bucketName, String objectName, String key, String value)
      throws Exception {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    // The ID of your GCS object
    // String objectName = "your-object-name";

    // The context key-value you want to add
    // String key = "your-context-key";
    // String value = "your-context-value";

    try (Storage storage =
        StorageOptions.newBuilder().setProjectId(projectId).build().getService()) {
      BlobId blobId = BlobId.of(bucketName, objectName);
      Blob blob = storage.get(blobId);
      if (blob == null) {
        System.out.println("The object " + objectName + " was not found in " + bucketName);
        return;
      }

      // Recommended: Set a generation-match precondition to avoid potential race
      // conditions and data corruptions. The request to update returns a 412 error if
      // the object's generation number does not match your precondition.
      Storage.BlobTargetOption precondition = Storage.BlobTargetOption.generationMatch();

      // This section demonstrates how to upsert, delete all, and delete a specific context.

      // To upsert a context (if the key already exists, its value is replaced;
      // otherwise, a new key-value pair is added):
      ObjectCustomContextPayload payload =
          ObjectCustomContextPayload.newBuilder().setValue(value).build();
      Map<String, ObjectCustomContextPayload> custom = Maps.newHashMap();
      custom.put(key, payload);
      ObjectContexts contexts = ObjectContexts.newBuilder().setCustom(custom).build();

      /*
       * To delete all existing contexts:
       * ObjectContexts contexts = ObjectContexts.newBuilder().setCustom(null).build();
       */

      /*
       * To delete a specific key from the context:
       * Map<String, ObjectCustomContextPayload> custom = Maps.newHashMap();
       * custom.put(key, null);
       * ObjectContexts contexts = ObjectContexts.newBuilder().setCustom(custom).build();
       */
      BlobInfo pendingUpdate = blob.toBuilder().setContexts(contexts).build();
      storage.update(pendingUpdate, precondition);

      System.out.println(
          "Updated custom contexts for object " + objectName + " in bucket " + bucketName);
    }
  }
}

Rust

use google_cloud_storage::client::StorageControl;
use google_cloud_storage::model::ObjectContexts;
use google_cloud_wkt::FieldMask;

pub async fn sample(client: &StorageControl, bucket_id: &str) -> anyhow::Result<()> {
    const NAME: &str = "object-with-contexts";
    let object = client
        .get_object()
        .set_bucket(format!("projects/_/buckets/{bucket_id}"))
        .set_object(NAME)
        .send()
        .await?;

    let metageneration = object.metageneration;
    let mut custom = object.contexts.clone().unwrap_or_default().custom;
    custom.entry("example".to_string()).or_default().value = "true".into();

    let updated = client
        .update_object()
        .set_if_metageneration_match(metageneration)
        .set_object(object.set_contexts(ObjectContexts::new().set_custom(custom)))
        .set_update_mask(FieldMask::default().set_paths(["contexts.custom.example"]))
        .send()
        .await?;
    println!(
        "successfully set contexts for object {NAME} in bucket {bucket_id}: {:?}",
        updated.contexts
    );
    Ok(())
}

‫API בפורמט JSON

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

  2. יוצרים קובץ JSON עם ההגדרות של האובייקט, שחייבות לכלול את שדות התצורה contexts של האובייקט.

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

      {
        "contexts": {
          "custom": {
            "KEY": {
              "value": "VALUE"
            },
            ...
          }
        }
      }

    כאשר:

    • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department. אפשר לציין כמה צמדים של מפתח/ערך באובייקט custom.
    • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.

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

      {
        "contexts": {
          "custom": null
        }
      }

    כדי למחוק מפתח ספציפי מההקשר, צריך להשתמש בפורמט הבא:

      {
        "contexts": {
          "custom": {
            "KEY": null,
            ...
          }
        }
      }

    כאשר:

    ‫KEY הוא מפתח ההקשר שרוצים למחוק מאובייקט. לדוגמה, Department. אפשר לציין כמה מפתחות למחיקה מהאובייקט custom.

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

    curl -X PATCH --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"

    כאשר:

    • ‫JSON_FILE_NAME הוא הנתיב לקובץ שכולל את המידע על ההקשרים של האובייקטים.
    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שאת ההקשר שלו רוצים לערוך. לדוגמה, my-bucket.
    • ‫OBJECT_NAME הוא שם האובייקט עם קידוד כתובת URL. לדוגמה, employees.txt.

אפשר גם להחליף את ההקשר של אובייקט באמצעות בקשת PUT Object. בקשת האובייקט PUT מחליפה גם מטא-נתונים אחרים של האובייקט. לכן, לא מומלץ להשתמש בבקשת האובייקט PUT.

הצגת ההקשרים של האובייקטים

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

המסוף

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

    כניסה לדף Buckets

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

  3. עוברים לאובייקט ולוחצים על השם שלו.

    בדף Object details, צמדי מפתח/ערך של כל ההקשרים המצורפים מופיעים בקטע Object contexts.

שורת הפקודה

משתמשים בפקודה gcloud storage objects describe:

gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME

כאשר:

  • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט. לדוגמה, my-bucket.
  • ‫OBJECT_NAME הוא שם האובייקט. לדוגמה, employees.txt.

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

bucket: my-bucket
contexts:
  custom:
    Department:
      createTime: '2023-01-01T00:00:00.000000+00:00'
      type: CUSTOM
      updateTime: '2023-01-01T00:00:00.000000+00:00'
      value: Human resources
    google:annotation:face-detector-v1:
      createTime: '2025-09-29T17:20:00.000000+00:00'
      extendedDataTypeUrl: type.googleapis.com/google.protobuf.Struct
      type: CUSTOM
      updateTime: '2025-09-29T17:20:00.000000+00:00'
      value: SUCCESS
name: employees.txt

ספריות לקוח

Java

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

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


import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobInfo.ObjectContexts;
import com.google.cloud.storage.BlobInfo.ObjectCustomContextPayload;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import java.util.Map;

public class GetObjectContexts {
  public static void getObjectContexts(String projectId, String bucketName, String objectName)
      throws Exception {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    // The ID of your GCS object
    // String objectName = "your-object-name";

    try (Storage storage =
        StorageOptions.newBuilder().setProjectId(projectId).build().getService()) {

      Blob blob = storage.get(bucketName, objectName);
      if (blob == null) {
        System.out.println("The object " + objectName + " was not found in " + bucketName);
        return;
      }
      ObjectContexts objectContexts = blob.getContexts();

      if (objectContexts != null) {
        Map<String, ObjectCustomContextPayload> customContexts = objectContexts.getCustom();
        if (customContexts == null) {
          System.out.println("No custom contexts found for object: " + objectName);
          return;
        }
        // Print blob's object contexts
        System.out.println("\nCustom Contexts:");
        for (Map.Entry<String, ObjectCustomContextPayload> custom : customContexts.entrySet()) {
          System.out.println(custom.getKey() + "=" + custom.getValue());
        }
      }
    }
  }
}

Rust

use google_cloud_storage::client::StorageControl;

pub async fn sample(client: &StorageControl, bucket_id: &str) -> anyhow::Result<()> {
    const NAME: &str = "object-with-contexts";
    let object = client
        .get_object()
        .set_bucket(format!("projects/_/buckets/{bucket_id}"))
        .set_object(NAME)
        .send()
        .await?;
    println!(
        "The contexts field for object {NAME} in bucket {bucket_id} is: {:?}",
        object.contexts
    );
    Ok(())
}

‫API בפורמט JSON

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

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

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"

    כאשר:

    • ‫BUCKET_NAME הוא שם הקטגוריה המכילה את האובייקט. לדוגמה, my-bucket.
    • ‫OBJECT_NAME הוא שם האובייקט, מותאם לקידודי התווים שמתאימים לכתובות URL. לדוגמה, employees.txt.

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

      {
        "kind": "storage#object",
        "name": "employees.txt",
        "bucket": "my-bucket",
        "contexts": {
          "custom": {
            "Department": {
              "value": "Human resources",
              "createTime": "2023-01-01T00:00:00.000Z",
              "updateTime": "2023-01-01T00:00:00.000Z"
            },
            "google:annotation:face-detector-v1": {
              "value": "SUCCESS",
              "createTime": "2025-09-29T17:20:00.000Z",
              "updateTime": "2025-09-29T17:20:00.000Z",
              "extendedDataTypeUrl": "type.googleapis.com/google.protobuf.Struct"
            }
          }
        }
      }
      

הצגת ההקשר המלא של האובייקט

כדי לראות הקשר אחד ואת הנתונים המורחבים שלו, משתמשים ב-method‏ viewFullContext (גרסת טרום-השקה (Preview)).

‫API בפורמט JSON

כדי לאחזר הקשר מלא אחד (כולל נתונים מורחבים) לפי מפתח:

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

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

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/viewFullContext?contextKey=KEY"

    כאשר:

    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט. לדוגמה, my-bucket.
    • ‫OBJECT_NAME הוא שם האובייקט עם קידוד כתובת URL. לדוגמה, employees.txt.
    • ‫KEY הוא מפתח ההקשר הספציפי שרוצים לאחזר. לדוגמה, google:annotation:face-detector-v1.

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

    {
      "kind": "storage#objectFullContext",
      "type": "CUSTOM",
      "key": "google:annotation:face-detector-v1",
      "value": "SUCCESS",
      "createTime": "2025-09-29T17:20:00.000Z",
      "updateTime": "2025-09-29T17:20:00.000Z",
      "extendedData": {
        "@type": "type.googleapis.com/google.protobuf.Struct",
        "value": {
          "modelName": "face-detector",
          "modelVersion": "v1",
          "faceAnnotationGroup": {
            "faceAnnotations": [
              {
                "detectionConfidence": 0.9,
                "landmarkingConfidence": 0.8
              }
            ]
          }
        }
      }
    }

סינון אובייקטים לפי הקשרים

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

ניהול הקשרים של אובייקטים במהלך פעולות על אובייקטים

כברירת מחדל, Cloud Storage שומר על ההקשרים של האובייקטים כשמעתיקים, משכתבים, יוצרים, מעבירים או משחזרים אובייקטים.

העתקת אובייקטים

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

שורת הפקודה

כברירת מחדל, הפקודות gcloud storage cp, ‏ gcloud storage rsync ו-gcloud storage mv שומרות את ההקשרים של אובייקט המקור. כדי לשנות הקשרים במהלך הפעולות האלה, משתמשים באחד מהדגלים הבאים:

  • הדגל --custom-contexts להגדרת הקשרים חדשים לאובייקט היעד.

  • הדגל --clear-custom-contexts כדי למנוע צירוף של הקשרים מאובייקט המקור לאובייקט היעד.

  • שילוב של הדגלים --update-custom-contexts ו---remove-custom-contexts כדי לשנות הקשרים ספציפיים מאובייקט המקור לפני שמצרפים אותם לאובייקט היעד.

כדי להגדיר הקשרים חדשים כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp:

gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --custom-contexts=KEY=VALUE,...

כאשר:

  • ‫SOURCE_BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה, my-source-bucket.
  • ‫SOURCE_OBJECT_NAME הוא שם האובייקט שרוצים להעתיק. לדוגמה, employees.txt.
  • ‫DESTINATION_BUCKET_NAME הוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה, my-destination-bucket.
  • ‫DESTINATION_OBJECT_NAME הוא השם של אובייקט היעד. לדוגמה, employees-backup.txt.
  • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים.
  • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.

כדי להסיר את כל ההקשרים מאובייקט המקור כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp:

gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts

כאשר:

  • ‫SOURCE_BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה, my-source-bucket.
  • ‫SOURCE_OBJECT_NAME הוא שם האובייקט שרוצים להעתיק. לדוגמה, pets/dog.png.
  • ‫DESTINATION_BUCKET_NAME הוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה, my-destination-bucket.
  • ‫DESTINATION_OBJECT_NAME הוא השם של אובייקט היעד. לדוגמה, pets/cat.png.

כדי לשנות הקשרים ספציפיים מאובייקט המקור כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp עם --update-custom-contexts ו---remove-custom-contexts:

gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --update-custom-contexts=KEY=VALUE,... --remove-custom-contexts=KEY,...

כאשר:

  • ‫SOURCE_BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה, my-source-bucket.
  • ‫SOURCE_OBJECT_NAME הוא שם האובייקט שרוצים להעתיק. לדוגמה, pets/dog.png.
  • ‫DESTINATION_BUCKET_NAME הוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה, my-destination-bucket.
  • ‫DESTINATION_OBJECT_NAME הוא שם האובייקט ביעד. לדוגמה, pets/cat.png.
  • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department. אפשר לציין כמה צמדים של מפתח/ערך או כמה מפתחות שמופרדים בפסיקים.
  • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.

‫API בפורמט JSON

כדי לשנות הקשרים כשמעתיקים אובייקט, צריך לכלול את המאפיין contexts.custom בגוף הבקשה:

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

  2. יוצרים קובץ JSON שמכיל את ההקשרים שרוצים לצרף לאובייקט היעד:

      {
        "contexts": {
          "custom": {
            "KEY": {
              "value": "VALUE"
            }
          }
        }
      }

    כאשר:

    • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department.
    • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.
  3. משתמשים ב-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://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"

    כאשר:

    • ‫JSON_FILE_NAME הוא הנתיב לקובץ ה-JSON שכולל את המידע על ההקשרים של האובייקטים.
    • ‫SOURCE_BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה, my-source-bucket.
    • ‫SOURCE_OBJECT_NAME הוא השם של האובייקט שרוצים להעתיק, בקידודי תווים שמתאימים לכתובת URL. לדוגמה, employees.txt.
    • ‫DESTINATION_BUCKET_NAME הוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה, my-destination-bucket.
    • ‫DESTINATION_OBJECT_NAME הוא השם בקידוד כתובת URL של אובייקט היעד. לדוגמה, employees-backup.txt.

כדי למחוק הקשרים של מקורות במהלך פעולת העתקה, משתמשים בפרמטר השאילתה dropContextGroups=custom בבקשה:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"

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

כדי לשמור על ההקשרים, צריך להשמיט את המאפיין contexts מגוף הבקשה ולהחריג את הפרמטר של השאילתה dropContextGroups.

כתיבה מחדש של אובייקטים

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

שורת הפקודה

הפקודות gcloud storage cp,‏ gcloud storage rsync ו-gcloud storage mv מבצעות כתיבה מחדש באופן אוטומטי כשצריך, למשל כשמעתיקים אובייקטים בין מיקומים שונים או בין סוגי אחסון שונים. הפקודות gcloud storage cp ו-gcloud storage rsync יוצרות אובייקט מקור ואובייקט יעד, והפקודה gcloud storage mv יוצרת את אובייקט היעד ומסירה את אובייקט המקור. הפעולות האלה יוצרות אובייקט חדש, ולכן אפשר גם לשנות או לצרף הקשרים כחלק מאותה פקודה באמצעות כל אחד מהדגלים הבאים:

  • הדגל --custom-contexts להגדרת הקשרים חדשים לאובייקט היעד.

  • הדגל --clear-custom-contexts כדי למנוע צירוף של הקשרים מאובייקט המקור לאובייקט היעד.

  • שילוב של הדגלים --update-custom-contexts ו---remove-custom-contexts כדי לשנות הקשרים ספציפיים מאובייקט המקור לפני שמצרפים אותם לאובייקט היעד.

כדי להגדיר הקשרים חדשים כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp:

gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --custom-contexts=KEY=VALUE,...

כאשר:

  • ‫SOURCE_BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה, my-source-bucket.
  • ‫SOURCE_OBJECT_NAME הוא שם האובייקט שרוצים להעתיק. לדוגמה, employees.txt.
  • ‫DESTINATION_BUCKET_NAME הוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה, my-destination-bucket.
  • ‫DESTINATION_OBJECT_NAME הוא השם של אובייקט היעד. לדוגמה, employees-backup.txt.
  • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים.
  • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.

כדי להסיר את כל ההקשרים מאובייקט המקור כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp:

gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts

כאשר:

  • ‫SOURCE_BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה, my-source-bucket.
  • ‫SOURCE_OBJECT_NAME הוא שם האובייקט שרוצים להעתיק. לדוגמה, pets/dog.png.
  • ‫DESTINATION_BUCKET_NAME הוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה, my-destination-bucket.
  • ‫DESTINATION_OBJECT_NAME הוא שם האובייקט ביעד. לדוגמה, pets/cat.png.

כדי לשנות הקשרים ספציפיים מאובייקט המקור כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp עם --update-custom-contexts ו---remove-custom-contexts:

gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --update-custom-contexts=KEY=VALUE,... --remove-custom-contexts=KEY,...

כאשר:

  • ‫SOURCE_BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה, my-source-bucket.
  • ‫SOURCE_OBJECT_NAME הוא שם האובייקט שרוצים להעתיק. לדוגמה, pets/dog.png.
  • ‫DESTINATION_BUCKET_NAME הוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה, my-destination-bucket.
  • ‫DESTINATION_OBJECT_NAME הוא שם האובייקט ביעד. לדוגמה, pets/cat.png.
  • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department. אפשר לציין כמה צמדים של מפתח/ערך או כמה מפתחות שמופרדים בפסיקים.
  • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.

‫API בפורמט JSON

כדי לשנות את ההקשרים כשמשכתבים אובייקט, צריך לכלול את המאפיין contexts.custom בגוף הבקשה:

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

  2. יוצרים קובץ JSON שמכיל את ההקשרים שרוצים לצרף לאובייקט היעד:

      {
        "contexts": {
          "custom": {
            "KEY": {
              "value": "VALUE"
            }
          }
        }
      }

    כאשר:

    • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department.
    • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.
  3. משתמשים ב-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://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"

    כאשר:

    • ‫JSON_FILE_NAME הוא הנתיב לקובץ ה-JSON שכולל את פרטי ההקשרים של האובייקטים.
    • ‫SOURCE_BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שרוצים לשכתב. לדוגמה, my-source-bucket.
    • ‫SOURCE_OBJECT_NAME הוא השם של האובייקט שרוצים לשכתב, בקידוד כתובת URL. לדוגמה, employees.txt.
    • ‫DESTINATION_BUCKET_NAME הוא שם הקטגוריה שאליה כותבים מחדש את האובייקט. לדוגמה, my-destination-bucket.
    • ‫DESTINATION_OBJECT_NAME הוא השם של אובייקט היעד, בקידוד התווים שמתאימים לכתובות URL. לדוגמה, employees-backup.txt.

כדי למחוק הקשרים של מקורות במהלך פעולת שכתוב, משתמשים בפרמטר השאילתה dropContextGroups=custom בבקשה:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"

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

כדי לשמור על ההקשרים, צריך להשמיט את המאפיין contexts מגוף הבקשה ולהחריג את הפרמטר של השאילתה dropContextGroups.

הרכבת אובייקטים

כברירת מחדל, הפקודה gcloud storage objects compose וה-method‏ compose של ה-API בפורמט JSON ממזגות את ההקשרים של אובייקטי המקור ומצרפות אותם לאובייקטי היעד. כדי לפתור התנגשויות, Cloud Storage נותן עדיפות להקשרים מאובייקטים של מקור שעובדו מאוחר יותר. למידע נוסף על ההתנהגות של הקשר האובייקט במהלך פעולת הרכבה, ראו הקשרים של אובייקטים מורכבים.

שורת הפקודה

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

gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/DESTINATION_OBJECT_NAME --contexts=KEY=VALUE,...

כאשר:

  • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקטים של המקור, ושבה נוצר אובייקט היעד. לדוגמה, my-bucket.
  • ‫SOURCE_OBJECT_1 ו-SOURCE_OBJECT_2 הם אובייקטים של המקור שצריך להרכיב.
  • ‫DESTINATION_OBJECT_NAME הוא השם של אובייקט היעד שרוצים ליצור. לדוגמה, my-composite-object.
  • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים.
  • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה: Human resources.

כדי למנוע צירוף של הקשרי מקור לאובייקטים מורכבים, משתמשים בדגל --clear-custom-contexts:

gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts

כאשר:

  • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקטים של המקור, ושבה נוצר אובייקט היעד. לדוגמה, my-bucket.
  • ‫SOURCE_OBJECT_1 ו-SOURCE_OBJECT_2 הם אובייקטי המקור שצריך להרכיב.
  • ‫DESTINATION_OBJECT_NAME הוא השם של אובייקט היעד שרוצים ליצור. לדוגמה, my-composite-object.

‫API בפורמט JSON

כדי לציין הקשרים חדשים לאובייקט היעד כשיוצרים אובייקטים, צריך לכלול הקשרים במאפיין destination של גוף הבקשה.

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

  2. יוצרים קובץ JSON שמכיל את גוף הבקשה:

    {
      "sourceObjects": [
        {"name": "SOURCE_OBJECT_1"},
        {"name": "SOURCE_OBJECT_2"}
      ],
      "destination": {
        "contentType": "text/plain",
        "contexts": {
          "custom": {
            "KEY": {
              "value": "VALUE"
            }
          }
        }
      }
    }

    כאשר:

    • ‫SOURCE_OBJECT_1 ו-SOURCE_OBJECT_2 הם אובייקטים של המקור שצריך להרכיב.
    • ‫KEY הוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה, Department.
    • ‫VALUE הוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה, Human resources.
  3. משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת אובייקט POST compose:

    curl -X POST --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/DESTINATION_OBJECT_NAME/compose"

    כאשר:

    • ‫JSON_FILE_NAME הוא הנתיב לקובץ ה-JSON שכולל את גוף הבקשה.
    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקטים של המקור, ושבה נוצר אובייקט היעד. לדוגמה, my-bucket.
    • ‫DESTINATION_OBJECT_NAME הוא השם של אובייקט היעד שרוצים ליצור. לדוגמה, my-composite-object.

כדי למנוע צירוף של הקשרי מקור לאובייקטים מורכבים, משתמשים בפרמטר השאילתה dropContextGroups=custom בבקשה:

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

  2. יוצרים קובץ JSON שמכיל את גוף הבקשה:

    {
      "sourceObjects": [
        {"name": "SOURCE_OBJECT_1"},
        {"name": "SOURCE_OBJECT_2"}
      ],
      "destination": {
        "contentType": "text/plain"
    }
    }

    כאשר:

    • ‫SOURCE_OBJECT_1 ו-SOURCE_OBJECT_2 הם אובייקטים של המקור שצריך להרכיב.
  3. משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת אובייקט POST compose:

    curl -X POST --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/DESTINATION_OBJECT_NAME/compose?dropContextGroups=custom"

    כאשר:

    • ‫JSON_FILE_NAME הוא הנתיב לקובץ ה-JSON שכולל את גוף הבקשה.
    • ‫BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקטים של המקור, ושבה נוצר אובייקט היעד. לדוגמה, my-bucket.
    • ‫DESTINATION_OBJECT_NAME הוא שם אובייקט היעד שרוצים ליצור. לדוגמה, my-composite-object.

ניהול הקשרים של אובייקטים בכמות גדולה

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

ניתוח הקשרים של אובייקטים ב-BigQuery

אם יש לכם מינוי פעיל ל-Storage Intelligence, אתם יכולים לשלוח שאילתות ולנתח הקשרים של אובייקטים ב-BigQuery. משתמשים ב-Object Contexts Catalog view (object_contexts_catalog_view) כדי לשלוח שאילתות למפתחות הקשר, לערכים ולמטענים ייעודיים (payloads) מובְנים של extendedData (כמו תוויות של תמונות, פנים שזוהו ותיבות תוחמות). תצוגת הקטלוג מתעדכנת כל 24 שעות.

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

SELECT
  t.project,
  t.bucket,
  t.name,
  t.generation,
  label
FROM
  `PROJECT_ID.INSIGHTS_DATASET.object_contexts_catalog_view` AS t,
  UNNEST(t.contexts) AS context,
  UNNEST(JSON_QUERY_ARRAY(context.extendedData.labelAnnotationGroup.labelAnnotations)) AS label
WHERE
  context.key = "google:annotation:label-detector-v1"
  AND FLOAT64(label.score) > 0.75;

מחליפים את:

  • ‫PROJECT_ID: מזהה הפרויקט שמכיל את מערך הנתונים של Storage Insights.
  • ‫INSIGHTS_DATASET: השם של מערך הנתונים של Storage Insights.

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

המאמרים הבאים