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

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

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

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

  • מחיקת אובייקטים באמצעות Google Cloud CLI או ממשקי REST API: משתמש באובייקט Storage (roles/storage.objectUser)
  • כדי למחוק אובייקטים באמצעות Cloud de Confiance המסוף: אדמין של אחסון (roles/storage.admin)
  • לחלופין, כדי למחוק אובייקטים באמצעות Cloud de Confiance המסוף: צפייה (roles/viewer) ומשתמש באובייקטים באחסון (roles/storage.objectUser)

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

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

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

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

  • מחיקת אובייקטים: storage.objects.delete
  • כדי להציג רשימה של אובייקטים באמצעות מסוף Cloud de Confiance , או באמצעות הדגל --recursive או תווים כלליים ב-Google Cloud CLI: storage.objects.list
  • הצגת רשימת קטגוריות באמצעות Cloud de Confiance המסוף: storage.buckets.list

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

מחיקת אובייקט בודד

בקטע הזה מוסבר איך למחוק אובייקט אחד בכל פעם.

כדי למחוק אובייקט יחיד:

המסוף

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

    כניסה לדף Buckets

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

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

  3. עוברים אל האובייקט, שאולי יהיה ממוקם בתיקייה.

  4. מסמנים את התיבה שלצד האובייקט שרוצים למחוק.

  5. לוחצים על מחיקה ואז על מחיקה בתיבת הדו-שיח שמופיעה.

שורת הפקודה

משתמשים בפקודה Google Cloud CLI gcloud storage rm:

gcloud storage rm gs://BUCKET_NAME/OBJECT_NAME

כאשר:

  • BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שרוצים למחוק. לדוגמה, my-bucket.
  • OBJECT_NAME הוא שם האובייקט שרוצים למחוק. לדוגמה, pets/dog.png.

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

Removing objects:
Removing gs://example-bucket/file.txt...
  Completed 1/1

ספריות לקוח

C++

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

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

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

namespace gcs = ::google::cloud::storage;
[](gcs::Client client, std::string const& bucket_name,
   std::string const& object_name) {
  google::cloud::Status status =
      client.DeleteObject(bucket_name, object_name);

  if (!status.ok()) throw std::runtime_error(status.message());
  std::cout << "Deleted " << object_name << " in bucket " << bucket_name
            << "\n";
}

C#

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

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

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


using Google.Cloud.Storage.V1;
using System;

public class DeleteFileSample
{
    public void DeleteFile(
        string bucketName = "your-unique-bucket-name",
        string objectName = "your-object-name")
    {
        var storage = StorageClient.Create();
        storage.DeleteObject(bucketName, objectName);
        Console.WriteLine($"Deleted {objectName}.");
    }
}

Go

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

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

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

import (
	"context"
	"fmt"
	"io"
	"time"

	"cloud.google.com/go/storage"
)

// deleteFile removes specified object.
func deleteFile(w io.Writer, bucket, object string) error {
	// bucket := "bucket-name"
	// object := "object-name"
	ctx := context.Background()
	client, err := storage.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("storage.NewClient: %w", err)
	}
	defer client.Close()

	ctx, cancel := context.WithTimeout(ctx, time.Second*10)
	defer cancel()

	o := client.Bucket(bucket).Object(object)

	// Optional: set a generation-match precondition to avoid potential race
	// conditions and data corruptions. The request to delete the file is aborted
	// if the object's generation number does not match your precondition.
	attrs, err := o.Attrs(ctx)
	if err != nil {
		return fmt.Errorf("object.Attrs: %w", err)
	}
	o = o.If(storage.Conditions{GenerationMatch: attrs.Generation})

	if err := o.Delete(ctx); err != nil {
		return fmt.Errorf("Object(%q).Delete: %w", object, err)
	}
	fmt.Fprintf(w, "Blob %v deleted.\n", object)
	return nil
}

Java

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

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

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

import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class DeleteObject {
  public static void deleteObject(String projectId, String bucketName, String objectName) {
    // 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";

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Blob blob = storage.get(bucketName, objectName);
    if (blob == null) {
      System.out.println("The object " + objectName + " wasn't found in " + bucketName);
      return;
    }
    BlobId idWithGeneration = blob.getBlobId();
    // Deletes the blob specified by its id. When the generation is present and non-null it will be
    // specified in the request.
    // If versioning is enabled on the bucket and the generation is present in the delete request,
    // only the version of the object with the matching generation will be deleted.
    // If instead you want to delete the current version, the generation should be dropped by
    // performing the following.
    // BlobId idWithoutGeneration =
    //    BlobId.of(idWithGeneration.getBucket(), idWithGeneration.getName());
    // storage.delete(idWithoutGeneration);
    storage.delete(idWithGeneration);

    System.out.println("Object " + objectName + " was permanently deleted from " + bucketName);
  }
}

Node.js

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

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

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

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// The ID of your GCS bucket
// const bucketName = 'your-unique-bucket-name';

// The ID of your GCS file
// const fileName = 'your-file-name';

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

// Optional:
// Set a generation-match precondition to avoid potential race conditions
// and data corruptions. The request to delete is aborted if the object's
// generation number does not match your precondition. For a destination
// object that does not yet exist, set the ifGenerationMatch precondition to 0
// If the destination object already exists in your bucket, set instead a
// generation-match precondition using its generation number.
const deleteOptions = {
  ifGenerationMatch: generationMatchPrecondition,
};
async function deleteFile() {
  await storage.bucket(bucketName).file(fileName).delete(deleteOptions);

  console.log(`gs://${bucketName}/${fileName} deleted`);
}

deleteFile().catch(console.error);

PHP

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

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

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

use Google\Cloud\Storage\StorageClient;

/**
 * Delete an object.
 *
 * @param string $bucketName The name of your Cloud Storage bucket.
 *        (e.g. 'my-bucket')
 * @param string $objectName The name of your Cloud Storage object.
 *        (e.g. 'my-object')
 */
function delete_object(string $bucketName, string $objectName): void
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->object($objectName);
    $object->delete();
    printf('Deleted gs://%s/%s' . PHP_EOL, $bucketName, $objectName);
}

Python

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

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

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

from google.cloud import storage


def delete_blob(bucket_name, blob_name):
    """Deletes a blob from the bucket."""
    # bucket_name = "your-bucket-name"
    # blob_name = "your-object-name"

    storage_client = storage.Client()

    bucket = storage_client.bucket(bucket_name)
    blob = bucket.blob(blob_name)
    generation_match_precondition = None

    # Optional: set a generation-match precondition to avoid potential race conditions
    # and data corruptions. The request to delete is aborted if the object's
    # generation number does not match your precondition.
    blob.reload()  # Fetch blob metadata to use in generation_match_precondition.
    generation_match_precondition = blob.generation

    blob.delete(if_generation_match=generation_match_precondition)

    print(f"Blob {blob_name} deleted.")

Ruby

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

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

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

def delete_file bucket_name:, file_name:
  # The ID of your GCS bucket
  # bucket_name = "your-unique-bucket-name"

  # The ID of your GCS object
  # file_name = "your-file-name"

  require "google/cloud/storage"

  storage = Google::Cloud::Storage.new
  bucket  = storage.bucket bucket_name, skip_lookup: true
  file    = bucket.file file_name

  file.delete

  puts "Deleted #{file.name}"
end

Rust

use google_cloud_storage::client::StorageControl;

pub async fn sample(client: &StorageControl, bucket_id: &str) -> anyhow::Result<()> {
    const NAME: &str = "deleted-object-name";
    client
        .delete_object()
        .set_bucket(format!("projects/_/buckets/{bucket_id}"))
        .set_object(NAME)
        // Consider .set_generation() to make request idempotent
        .send()
        .await?;
    println!("successfully deleted object {NAME} in bucket {bucket_id}");
    Ok(())
}

ממשקי 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://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"

    כאשר:

    • BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שרוצים למחוק. לדוגמה, my-bucket.
    • OBJECT_NAME הוא שם האובייקט שרוצים להוריד, מותאם לקידודי התווים שמתאימים לכתובות URL. לדוגמה, pets/dog.png יותאם לקידודי התווים שמתאימים לכתובות URL באופן הבא: pets%2Fdog.png.

‫API בפורמט XML

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

  2. משתמשים ב- curl כדי לשלוח קריאה ל-API בפורמט XML באמצעות בקשת DELETE Object:

    curl -X DELETE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.s3nsapis.fr/BUCKET_NAME/OBJECT_NAME"

    כאשר:

    • BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקט שרוצים למחוק. לדוגמה, my-bucket.
    • OBJECT_NAME הוא שם האובייקט שרוצים להוריד, מותאם לקידודי התווים שמתאימים לכתובות URL. לדוגמה, pets/dog.png יותאם לקידודי התווים שמתאימים לכתובות URL באופן הבא: pets%2Fdog.png.

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

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

המסוף

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

    כניסה לדף Buckets

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

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

  3. עוברים אל האובייקטים, שאולי יהיו ממוקמים בתיקייה.

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

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

  5. לוחצים על מחיקה ואז על מחיקה בתיבת הדו-שיח שמופיעה.

אם מוחקים מספר אובייקטים בבת אחת, אפשר ללחוץ על הסמל Notifications במסוף Cloud de Confiance כדי לעקוב אחרי התקדמות המחיקה. במסוףCloud de Confiance אפשר למחוק מיליוני אובייקטים בבת אחת, והפעולה הזו מתבצעת ברקע.

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

שורת הפקודה

Google Cloud CLI

כדי למחוק קבוצות של אובייקטים שיש להם אותה קידומת, למשל אובייקטים שהשמות שלהם מחקים מבנה של תיקיות, משתמשים בדגל --recursive עם gcloud storage rm:

gcloud storage rm --recursive gs://BUCKET_NAME/PREFIX

כאשר:

  • BUCKET_NAME הוא שם הקטגוריה. לדוגמה, my-bucket.
  • PREFIX הוא קידומת משותפת של האובייקטים שרוצים למחוק. לדוגמה, pets/.

Amazon S3 CLI

כדי למחוק כמה אובייקטים ב-Cloud Storage באמצעות Amazon S3 CLI, משתמשים בפקודה aws s3api delete-objects. כדי להפנות את הבקשה אל ה-API בפורמט XML למחיקת כמה אובייקטים ב-Cloud Storage, צריך להגדיר את הדגל --endpoint-url לערך storage.googleapis.com. הגדרות מפורטות של פרמטרים והתנהגות של delete-objects API זמינות במאמרי העזרה של Amazon S3 CLI בנושא delete-objects.

ספריות לקוח

‫Cloud Storage תומך ב-API בפורמט XML למחיקה של אובייקטים מרובים דרך הממשק התואם ל-Amazon S3. כדי להשתמש בספריות לקוח שתואמות ל-Amazon S3 למחיקה של אובייקטים בכמות גדולה, צריך להפנות את הבקשה לנקודת הקצה Cloud de Confiance by S3NS על ידי הגדרת כתובת ה-URL של נקודת הקצה ל-https://storage.googleapis.com בתצורת הלקוח. הגישה הזו יכולה להיות שימושית אם אתם מבצעים אחת מהמשימות הבאות:

  • שימוש בבסיסי קוד קיימים או בכלי פיתוח שכבר נוצרו עבור Amazon S3.
  • שמירה על עקביות בסביבות מרובות עננים שכוללות גם Amazon S3 וגם Cloud Storage.

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

  import boto3
  def main():
  # Initialize the S3 client to point to the Google Cloud Storage endpoint
    client = boto3.client(
        service_name='s3',
        endpoint_url='https://storage.googleapis.com',
        aws_access_key_id='YOUR_ACCESS_ID',
        aws_secret_access_key='YOUR_SECRET',
    )
  # Perform delete operations as defined in the library's documentation
  # response = client.delete_objects(Bucket='BUCKET_NAME', Delete={'Objects': [...]})
  

חתימות של שיטות ספציפיות והגדרות של פרמטרים מופיעות delete_objects במאמרי העזרה של Boto3.

‫API בפורמט XML

כדי למחוק עד 1,000 אובייקטים בבקשה אחת באמצעות API בפורמט XML, מבצעים את השלבים הבאים:

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

  2. יוצרים מסמך XML שמציין את האובייקטים שרוצים למחוק.

    רשימה מלאה של ההגדרות מופיעה במאמר מחיקת כמה אובייקטים במאמרי העזרה של ה-API בפורמט XML. ההגדרות הנפוצות שצריך לכלול בקובץ ה-XML:

    <Delete>
        <Object>
          <Key>OBJECT_NAME</Key>
          <VersionId>VERSION_ID</VersionId>
        </Object>
        ...
        <Quiet>QUIET_RESPONSE_BOOLEAN</Quiet>
      </Delete>

    כאשר:

    • OBJECT_NAME הוא שם האובייקט בקידוד כתובת URL. לדוגמה, pets/dog.png יותאם לקידודי התווים שמתאימים לכתובות URL באופן הבא: pets%2Fdog.png. אפשר לציין עד 1,000 אובייקטים בקובץ ה-XML.
    • VERSION_ID הוא מזהה הגרסה של האובייקט. לדוגמה, 11111.
    • QUIET_RESPONSE_BOOLEAN שולט ברמת הפירוט של התגובה של ה-API:
      • מגדירים את הערך False כדי לקבל תשובה מפורטת. התשובה כוללת פרטים על כל אובייקט, גם אם הוא נמחק בהצלחה וגם אם לא. פעולת המחיקה של אובייקטים מרובים באמצעות API בפורמט XML היא לא אטומית. אם בקשה מסוימת מובילה לכשלים חלקיים, יכול להיות שחלק מהאובייקטים יימחקו בהצלחה וחלק לא. לכן מומלץ להשתמש בתגובה המפורטת כדי לזהות את כל האובייקטים שנמחקו. אם הפעלתם את יומני הביקורת Data Access, תוכלו גם לבדוק את יומני הביקורת כדי לראות פרטים על הכשלים.
      • מגדירים את הערך True כדי לקבל תשובה שקטה. גוף התגובה לא כולל מידע על האובייקטים שנמחקו בהצלחה.
  3. משתמשים ב-curl כדי לשלוח בקשת קטגוריה POST ל-API בפורמט XML עם פרמטר השאילתה ?delete וקובץ ה-XML:

    curl -X POST --data-binary @XML_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.s3nsapis.fr/BUCKET_NAME?delete"

    כאשר:

    • XML_FILE_NAME הוא השם של קובץ ה-XML שיצרתם.
    • BUCKET_NAME הוא שם הקטגוריה שמכילה את האובייקטים שרוצים למחוק.

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

      <DeleteResult>
      <Deleted>
        <Key>images/photo1.jpg</Key>
        <VersionId>11111</VersionId>
      </Deleted>
      <Deleted>
        <Key>documents/report.pdf</Key>
        <VersionId>22222</VersionId>
      </Deleted>
      <Error>
        <Code>AccessDenied</Code>
        <Key>private/financial_data.xlsx</Key>
        <Message>Access Denied. You don't have permission to delete this object.</Message>
        <VersionId>33333</VersionId>
      </Error>
      </DeleteResult>
      

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

      <DeleteResult>
      <Error>
        <Code>AccessDenied</Code>
        <Key>private/financial_data.xlsx</Key>
        <Message>Access Denied. You don't have permission to delete this object.</Message>
        <VersionId>33333</VersionId>
      </Error>
      </DeleteResult>

מחיקת עד מיליארדי אובייקטים

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

מחיקה אוטומטית של אובייקטים באמצעות כללים של מחזור החיים של אובייקטים

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

שליחת בקשות למחיקת אובייקטים באצווה באמצעות API בפורמט JSON

כדי לצמצם את מספר חיבורי ה-HTTP שנדרשים כשמוחקים הרבה אובייקטים באמצעות API בפורמט JSON, משתמשים בבקשות בכמות גדולה ב-API בפורמט JSON. כדי לצמצם את התקורה של הרשת, אפשר לקבץ עד 100 קריאות ל-API בבקשת HTTP אחת.

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