Produktgruppe erstellen

Eine Produktgruppe ist ein einfacher Container für eine Gruppe von Produkten.

Leere Produktgruppe erstellen

Es empfiehlt sich, für alle Ihre Artikel nur eine Produktgruppe zu verwenden und zum Testen nach Bedarf zusätzliche Produktgruppen zu erstellen. Diese Codebeispiele zeigen, wie Sie eine leere Produktgruppe erstellen.

REST UND BEFEHLSZEILE

Bevor Sie die unten aufgeführten Daten für eine Anfrage verwenden, ersetzen Sie die folgenden Werte:

  • project-id: Die ID Ihres GCP-Projekts.
  • location-id: Eine gültige Standort-ID. Gültige Standort-IDs sind us-west1, us-east1, europe-west1 und asia-east1.
  • display-name: Ein String mit einem Anzeigenamen Ihrer Wahl.

HTTP-Methode und URL:

POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets

JSON-Text der Anfrage:

    {
      "displayName": "display-name"
    }
    

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets" | Select-Object -Expand Content

Wenn die Anfrage erfolgreich ist, gibt der Server den HTTP-Statuscode 200 OK und die Antwort im JSON-Format zurück.

Die Ausgabe sieht in etwa so aus: Sie können die Produktgruppen-ID verwenden (in diesem Fall b6d809615b6dd675), um andere Vorgänge für die Produktgruppe auszuführen.

    {
      "name": "projects/project-id/locations/location-id/productSets/b6d809615b6dd675",
      "displayName": "new-product-set"
    }
    

C#

        private static object CreateProductSet(CreateProductSetsOptions opts)
            {
                var client = ProductSearchClient.Create();

                // Create a product set with the product set specification in the region.
                var request = new CreateProductSetRequest
                {
                    // A resource that represents Google Cloud Platform location
                    ParentAsLocationName = new LocationName(opts.ProjectID,
                                                            opts.ComputeRegion),
                    ProductSetId = opts.ProductSetId,
                    ProductSet = new ProductSet
                    {
                        DisplayName = opts.ProductSetDisplayName
                    }
                };

                // The response is the product set with the `name` populated
                var response = client.CreateProductSet(request);

                Console.WriteLine($"Product set name: {response.DisplayName}");

                return 0;
            }

Go


    import (
    	"context"
    	"fmt"
    	"io"

    	vision "cloud.google.com/go/vision/apiv1"
    	visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1"
    )

    // createProductSet creates a product set.
    func createProductSet(w io.Writer, projectID string, location string, productSetID string, productSetDisplayName string) error {
    	ctx := context.Background()
    	c, err := vision.NewProductSearchClient(ctx)
    	if err != nil {
    		return fmt.Errorf("NewProductSearchClient: %v", err)
    	}
    	defer c.Close()

    	req := &visionpb.CreateProductSetRequest{
    		Parent:       fmt.Sprintf("projects/%s/locations/%s", projectID, location),
    		ProductSetId: productSetID,
    		ProductSet: &visionpb.ProductSet{
    			DisplayName: productSetDisplayName,
    		},
    	}

    	resp, err := c.CreateProductSet(ctx, req)
    	if err != nil {
    		return fmt.Errorf("CreateProductSet: %v", err)
    	}

    	fmt.Fprintf(w, "Product set name: %s\n", resp.Name)

    	return nil
    }
    

Java

/**
     * Create a product set
     *
     * @param projectId - Id of the project.
     * @param computeRegion - Region name.
     * @param productSetId - Id of the product set.
     * @param productSetDisplayName - Display name of the product set.
     * @throws IOException - on I/O errors.
     */
    public static void createProductSet(
        String projectId, String computeRegion, String productSetId, String productSetDisplayName)
        throws IOException {
      try (ProductSearchClient client = ProductSearchClient.create()) {

        // A resource that represents Google Cloud Platform location.
        String formattedParent = ProductSearchClient.formatLocationName(projectId, computeRegion);

        // Create a product set with the product set specification in the region.
        ProductSet myProductSet =
            ProductSet.newBuilder().setDisplayName(productSetDisplayName).build();
        CreateProductSetRequest request =
            CreateProductSetRequest.newBuilder()
                .setParent(formattedParent)
                .setProductSet(myProductSet)
                .setProductSetId(productSetId)
                .build();
        ProductSet productSet = client.createProductSet(request);
        // Display the product set information
        System.out.println(String.format("Product set name: %s", productSet.getName()));
      }
    }

Node.js

// Imports the Google Cloud client library
    const vision = require('@google-cloud/vision');

    // Creates a client
    const client = new vision.ProductSearchClient();

    /**
     * TODO(developer): Uncomment the following line before running the sample.
     */
    // const projectId = 'Your Google Cloud project Id';
    // const location = 'A compute region name';
    // const productSetId = 'Id of the product set';
    // const productSetDisplayName = 'Display name of the product set';

    // Resource path that represents Google Cloud Platform location.
    const locationPath = client.locationPath(projectId, location);

    const productSet = {
      displayName: productSetDisplayName,
    };

    const request = {
      parent: locationPath,
      productSet: productSet,
      productSetId: productSetId,
    };

    const [createdProductSet] = await client.createProductSet(request);
    console.log(`Product Set name: ${createdProductSet.name}`);

PHP

namespace Google\Cloud\Samples\Vision;

    use Google\Cloud\Vision\V1\ProductSearchClient;
    use Google\Cloud\Vision\V1\ProductSet;

    /**
     * Create a product set
     *
     * @param string $projectId Your Google Cloud project ID
     * @param string $location Google Cloud compute region name
     * @param string $productSetId ID of the product set
     * @param string $productSetDisplayName Display name of the product set
     */
    function product_set_create($projectId, $location, $productSetId, $productSetDisplayName)
    {
        $client = new ProductSearchClient();

        # a resource that represents Google Cloud Platform location.
        $locationPath = $client->locationName($projectId, $location);

        # create a product set with the product set specification in the region.
        $productSet = (new ProductSet())
            ->setDisplayName($productSetDisplayName);

        # the response is the product set with the `name` field populated.
        $response = $client->createProductSet($locationPath, $productSet, ['productSetId' => $productSetId]);

        # display the product information.
        printf('Product set name: %s' . PHP_EOL, $response->getName());

        $client->close();
    }

Python

from google.cloud import vision

    def create_product_set(
            project_id, location, product_set_id, product_set_display_name):
        """Create a product set.
        Args:
            project_id: Id of the project.
            location: A compute region name.
            product_set_id: Id of the product set.
            product_set_display_name: Display name of the product set.
        """
        client = vision.ProductSearchClient()

        # A resource that represents Google Cloud Platform location.
        location_path = client.location_path(
            project=project_id, location=location)

        # Create a product set with the product set specification in the region.
        product_set = vision.types.ProductSet(
                display_name=product_set_display_name)

        # The response is the product set with `name` populated.
        response = client.create_product_set(
            parent=location_path,
            product_set=product_set,
            product_set_id=product_set_id)

        # Display the product set information.
        print('Product set name: {}'.format(response.name))

Ruby

require "google/cloud/vision"

    def product_search_create_product_set project_id = "your-project-id"
      client = Google::Cloud::Vision::ProductSearch.new

      # A resource that represents Google Cloud Platform location.
      location = "us-west1" # specify a compute region name
      location_path = client.location_path project_id, location

      # Create a product set with the product set specification in the region.
      product_set = {
        display_name: "display-name"
      }

      # The response is the product set with `name` populated.
      product_set = client.create_product_set location_path, product_set

      # Display the product set information.
      puts "Product set name: #{product_set.name}"
    end

Bulk-Import zum Erstellen einer Produktgruppe verwenden

Sie können die Bulk-Importfunktion auch verwenden, um eine Produktgruppe gleichzeitig mit mehreren Produkten und deren Referenzbildern zu erstellen.

In der von Ihnen verwendeten CSV für Bulk-Import werden verschiedene Referenzen für die Produktgruppe, Produkte und Referenzbilder festgelegt. Weitere Informationen finden Sie unter CSV für Bulk-Import formatieren.

Führen Sie den Bulk-Import mit diesem Code durch:

REST UND BEFEHLSZEILE

Bevor Sie die unten aufgeführten Daten für eine Anfrage verwenden, ersetzen Sie die folgenden Werte:

  • project-id: Die ID Ihres GCP-Projekts.
  • location-id: Eine gültige Standort-ID. Gültige Standort-IDs sind us-west1, us-east1, europe-west1 und asia-east1.
  • storage-path: Ein Cloud Storage-Bucket/-Verzeichnis, in dem Ihre CSV-Eingabedatei gespeichert ist. Der anfragende Nutzer muss mindestens Leseberechtigung für den Bucket haben.

HTTP-Methode und URL:

POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import

JSON-Text der Anfrage:

    {
      "inputConfig": {
        "gcsSource": {
          "csvFileUri": "storage-path"
        }
      }
    }
    

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import" | Select-Object -Expand Content

Die Ausgabe sieht in etwa so aus: Sie können den Status der Aufgabe anhand der Vorgangs-ID (in diesem Fall f10f34e32c40a710) abrufen. Ein Beispiel finden Sie unter Status eines Vorgangs abrufen:

    {
      "name": "projects/project-id/locations/location-id/operations/f10f34e32c40a710"
    }

Nachdem der lang andauernde Vorgang abgeschlossen ist, können Sie die Details des Importvorgangs abrufen. Die Antwort sollte in etwa so aussehen:

    {
      "name": "locations/location-id/operations/f10f34e32c40a710",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.vision.v1.BatchOperationMetadata",
        "state": "SUCCESSFUL",
        "submitTime": "2019-12-06T21:16:04.476466873Z",
        "endTime": "2019-12-06T21:16:40.594258084Z"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.vision.v1.ImportProductSetsResponse",
        "referenceImages": [
          {
            "name": "projects/project-id/locations/location-id/products/product_id0/referenceImages/image0",
            "uri": "gs://my-storage-bucket/img_039.jpg"
          },
          {
            "name": "projects/project-id/locations/location-id/products/product_id1/referenceImages/image1",
            "uri": "gs://my-storage-bucket/img_105.jpg"
          },
          {
            "name": "projects/project-id/locations/location-id/products/product_id2/referenceImages/image2",
            "uri": "gs://my-storage-bucket/img_224.jpg"
          },
          {
            "name": "projects/project-id/locations/location-id/products/product_id3/referenceImages/image3",
            "uri": "gs://my-storage-bucket/img_385.jpg"
          }
        ],
        "statuses": [
          {},
          {},
          {},
          {}
        ]
      }
    }
    

C#

private static int ImportProductSet(ImportProductSetOptions opts)
    {
        var client = ProductSearchClient.Create();
        var request = new ImportProductSetsRequest
        {
            // A resource that represents Google Cloud Platform location.
            ParentAsLocationName = new LocationName(opts.ProjectID,
                                                    opts.ComputeRegion),

            // Set the input configuration along with Google Cloud Storage URI
            InputConfig = new ImportProductSetsInputConfig
            {
                GcsSource = new ImportProductSetsGcsSource
                {
                    CsvFileUri = opts.GcsUri
                }
            }
        };
        var response = client.ImportProductSets(request);

        // Synchronous check of operation status
        var completedResponse = response.PollUntilCompleted();

        if (completedResponse.IsCompleted)
        {
            var result = completedResponse.Result;

            foreach (var status in result.Statuses)
            {
                // Check status of reference image.
                // `0` is the code for OK in google.rpc.Code.
                if (status.Code == 0)
                {
                    Console.WriteLine(result.ReferenceImages);
                }
                else
                {
                    Console.WriteLine("No reference images.");
                }
            }
        }

        return 0;
    }

Go



    import (
    	"context"
    	"fmt"
    	"io"

    	vision "cloud.google.com/go/vision/apiv1"
    	visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1"
    )

    // importProductSets creates a product set using information in a csv file on GCS.
    func importProductSets(w io.Writer, projectID string, location string, gcsURI string) error {
    	ctx := context.Background()
    	c, err := vision.NewProductSearchClient(ctx)
    	if err != nil {
    		return fmt.Errorf("NewProductSearchClient: %v", err)
    	}
    	defer c.Close()

    	req := &visionpb.ImportProductSetsRequest{
    		Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, location),
    		InputConfig: &visionpb.ImportProductSetsInputConfig{
    			Source: &visionpb.ImportProductSetsInputConfig_GcsSource{
    				GcsSource: &visionpb.ImportProductSetsGcsSource{
    					CsvFileUri: gcsURI,
    				},
    			},
    		},
    	}

    	op, err := c.ImportProductSets(ctx, req)
    	if err != nil {
    		return fmt.Errorf("ImportProductSets: %v", err)
    	}

    	fmt.Fprintf(w, "Processing operation name: %s\n", op.Name())

    	resp, err := op.Wait(ctx)
    	if err != nil {
    		return fmt.Errorf("Wait: %v", err)
    	}

    	fmt.Fprintf(w, "processing done.\n")

    	for i, status := range resp.Statuses {
    		// `0` is the coee for OK in google.rpc.code
    		fmt.Fprintf(w, "Status of processing line %d of the csv: %d\n", i, status.Code)

    		if status.Code == 0 {
    			fmt.Fprintf(w, "Reference image name: %s\n", resp.ReferenceImages[i].Name)
    		} else {
    			fmt.Fprintf(w, "Status code not OK: %s\n", status.Message)
    		}
    	}

    	return nil
    }
    

Java

/**
     * Import images of different products in the product set.
     *
     * @param projectId - Id of the project.
     * @param computeRegion - Region name.
     * @param gcsUri - Google Cloud Storage URI.Target files must be in Product Search CSV format.
     * @throws Exception - on client errors.
     */
    public static void importProductSets(String projectId, String computeRegion, String gcsUri)
        throws Exception {
      try (ProductSearchClient client = ProductSearchClient.create()) {

        // A resource that represents Google Cloud Platform location.
        String formattedParent = ProductSearchClient.formatLocationName(projectId, computeRegion);
        Builder gcsSource = ImportProductSetsGcsSource.newBuilder().setCsvFileUri(gcsUri);

        // Set the input configuration along with Google Cloud Storage URI
        ImportProductSetsInputConfig inputConfig =
            ImportProductSetsInputConfig.newBuilder().setGcsSource(gcsSource).build();

        // Import the product sets from the input URI.
        OperationFuture<ImportProductSetsResponse, BatchOperationMetadata> response =
            client.importProductSetsAsync(formattedParent, inputConfig);

        System.out.println(String.format("Processing operation name: %s", response.getName()));
        ImportProductSetsResponse results = response.get();
        System.out.println("Processing done.");
        System.out.println("Results of the processing:");

        for (int i = 0; i < results.getStatusesCount(); i++) {
          System.out.println(
              String.format(
                  "Status of processing line %s of the csv: %s", i, results.getStatuses(i)));
          // Check the status of reference image.
          if (results.getStatuses(i).getCode() == 0) {
            ReferenceImage referenceImage = results.getReferenceImages(i);
            System.out.println(referenceImage);
          } else {
            System.out.println("No reference image.");
          }
        }
      }
    }

Node.js

async function importProductSets(projectId, location, gcsUri) {
      // Imports the Google Cloud client library
      const vision = require('@google-cloud/vision');
      // Creates a client
      const client = new vision.ProductSearchClient();

      /**
       * TODO(developer): Uncomment the following line before running the sample.
       */
      // const projectId = 'Your Google Cloud project Id';
      // const location = 'A compute region name';
      // const gcsUri = 'Google Cloud Storage path of the input image'';

      // A resource that represents Google Cloud Platform location.
      const projectLocation = client.locationPath(projectId, location);

      // Set the input configuration along with Google Cloud Storage URI
      const inputConfig = {
        gcsSource: {
          csvFileUri: gcsUri,
        },
      };

      // Import the product sets from the input URI.
      const [response, operation] = await client.importProductSets({
        parent: projectLocation,
        inputConfig: inputConfig,
      });

      console.log('Processing operation name: ', operation.name);

      // synchronous check of operation status
      const [result] = await response.promise();
      console.log('Processing done.');
      console.log('Results of the processing:');

      for (const i in result.statuses) {
        console.log('Status of processing ', i, 'of the csv:', result.statuses[i]);

        // Check the status of reference image
        if (result.statuses[i].code === 0) {
          console.log(result.referenceImages[i]);
        } else {
          console.log('No reference image.');
        }
      }

PHP

namespace Google\Cloud\Samples\Vision;

    use Google\Cloud\Vision\V1\ProductSearchClient;
    use Google\Cloud\Vision\V1\ImportProductSetsGcsSource;
    use Google\Cloud\Vision\V1\ImportProductSetsInputConfig;

    /**
     * Import images of different products in the product set.
     *
     * @param string $projectId Your Google Cloud Project ID
     * @param string $location Google Cloud compute region name
     * @param string $gcsUri Google Cloud Storage URI
     */
    function product_set_import($projectId, $location, $gcsUri)
    {
        $client = new ProductSearchClient();

        # a resource that represents Google Cloud Platform location.
        $locationPath = $client->locationName($projectId, $location);

        # set the input configuration along with Google Cloud Storage URI
        $gcsSource = (new ImportProductSetsGcsSource())
            ->setCsvFileUri($gcsUri);
        $inputConfig = (new ImportProductSetsInputConfig())
            ->setGcsSource($gcsSource);

        # import the product sets from the input URI
        $operation = $client->importProductSets($locationPath, $inputConfig);
        $operationName = $operation->getName();
        printf('Processing operation name: %s' . PHP_EOL, $operationName);

        $operation->pollUntilComplete();
        print('Processing done.' . PHP_EOL);

        if ($result = $operation->getResult()) {
            $referenceImages = $result->getReferenceImages();

            foreach ($result->getStatuses() as $count => $status) {
                printf('Status of processing line %d of the csv: ' . PHP_EOL, $count);
                # check the status of reference image
                # `0` is the code for OK in google.rpc.Code.
                if ($status->getCode() == 0) {
                    $referenceImage = $referenceImages[$count];
                    printf('name: %s' . PHP_EOL, $referenceImage->getName());
                    printf('uri: %s' . PHP_EOL, $referenceImage->getUri());
                } else {
                    printf('Status code not OK: %s' . PHP_EOL, $status->getMessage());
                }
            }
            print('IMPORTANT: You will need to wait up to 30 minutes for indexing to complete' . PHP_EOL);
        } else {
            printf('Error: %s' . PHP_EOL, $operation->getError()->getMessage());
        }

        $client->close();
    }

Python

def import_product_sets(project_id, location, gcs_uri):
        """Import images of different products in the product set.
        Args:
            project_id: Id of the project.
            location: A compute region name.
            gcs_uri: Google Cloud Storage URI.
                Target files must be in Product Search CSV format.
        """
        client = vision.ProductSearchClient()

        # A resource that represents Google Cloud Platform location.
        location_path = client.location_path(
            project=project_id, location=location)

        # Set the input configuration along with Google Cloud Storage URI
        gcs_source = vision.types.ImportProductSetsGcsSource(
            csv_file_uri=gcs_uri)
        input_config = vision.types.ImportProductSetsInputConfig(
            gcs_source=gcs_source)

        # Import the product sets from the input URI.
        response = client.import_product_sets(
            parent=location_path, input_config=input_config)

        print('Processing operation name: {}'.format(response.operation.name))
        # synchronous check of operation status
        result = response.result()
        print('Processing done.')

        for i, status in enumerate(result.statuses):
            print('Status of processing line {} of the csv: {}'.format(
                i, status))
            # Check the status of reference image
            # `0` is the code for OK in google.rpc.Code.
            if status.code == 0:
                reference_image = result.reference_images[i]
                print(reference_image)
            else:
                print('Status code not OK: {}'.format(status.message))

Ruby

require "google/cloud/vision"

    def product_search_import_product_sets(project_id = "your-project-id",
                                           location = "us-west1")

      client = Google::Cloud::Vision::ProductSearch.new

      # A resource that represents Google Cloud Platform location.
      location_path = client.location_path project_id, location

      # Set the input configuration along with Google Cloud Storage URI
      input_config = {
        gcs_source: {
          csv_file_uri: "gs://cloud-samples-data/vision/product_search/product_sets.csv"
        }
      }

      # Import the product sets from the input URI.
      operation = client.import_product_sets location_path, input_config
      puts "Processing operation name: #{operation.name}"
      operation.wait_until_done! # Waits for the operation to complete

      puts "Processing done."

      result = operation.response
      result.statuses.each_with_index do |status, index|
        puts "Status of processing line #{index} of the csv: #{status.code}"

        # Check the status of reference image
        # `0` is the code for OK in google.rpc.Code.
        if status.code.zero?
          reference_image = result.reference_images[index]
          puts reference_image.uri
        else
          puts "Status code not OK: #{status.message}"
        end
      end
    end

Status eines Vorgangs abrufen

Mehrere durch Ihre Anfragen gestartete Vorgänge sind lang andauernde Vorgänge wie das Erstellen von Produktgruppen über den Bulk-Import, das Löschen einer Produktgruppe und das Löschen verwaister Produkte. Bei diesen Anfragetypen wird eine JSON-Datei mit einer Vorgangs-ID zurückgegeben, mit der Sie den Status des Vorgangs abrufen können.

Beispiel: Eine Anfrage zum Löschen eines Batches (purge) gibt die folgende JSON-Datei zurück:

{
    "name": "projects/project-id/locations/location-id/operations/bc4e1d412863e626"
    }

In diesem Fall lautet die Vorgangs-ID bc4e1d412863e626. Die folgenden Beispiele zeigen, wie der Status dieses Vorgangs mit der ID abgerufen wird.

REST UND BEFEHLSZEILE

Bevor Sie die folgenden Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • location-id: Eine gültige Standortkennzeichnung. Gültige Standortkennzeichnungen sind us-west1, us-east1, europe-west1 und asia-east1.
  • operation-id: ID Ihres Vorgangs. Die ID ist das letzte Element des Vorgangsnamens. Beispiel:
      .
    • Name des Vorgangs: projects/project-id/locations/location-id/operations/bc4e1d412863e626
    • Vorgangs-ID: bc4e1d412863e626

HTTP-Methode und URL:

GET https://vision.googleapis.com/v1/locations/location-id/operations/operation-id

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://vision.googleapis.com/v1/locations/location-id/operations/operation-id

PowerShell

Führen Sie folgenden Befehl aus:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://vision.googleapis.com/v1/locations/location-id/operations/operation-id" | Select-Object -Expand Content
Die Ausgabe für einen abgeschlossenen Löschvorgang der Produktgruppe sollte in etwa so aussehen:
{
      "name": "locations/location-id/operations/operation-id",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.vision.v1.BatchOperationMetadata",
        "state": "SUCCESSFUL",
        "submitTime": "2019-09-04T15:58:39.131591882Z",
        "endTime": "2019-09-04T15:58:43.099020580Z"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.vision.v1.PurgeProductsRequest",
        "parent": "projects/project-id/locations/location-id",
        "productSetPurgeConfig": {
          "productSetId": "project-set-id"
        },
        "force": true
      }
    }

Die Ausgabe für einen abgeschlossenen Löschvorgang verwaister Produktvorgänge sollte in etwa so aussehen:

    {
      "name": "locations/location-id/operations/operation-id",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.vision.v1.BatchOperationMetadata",
        "state": "SUCCESSFUL",
        "submitTime": "2019-09-04T16:08:38.278197397Z",
        "endTime": "2019-09-04T16:08:45.075778639Z"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.vision.v1.PurgeProductsRequest",
        "parent": "projects/project-id/locations/location-id",
        "deleteOrphanProducts": true,
        "force": true
      }
    }