Objekte auflisten

Auf dieser Seite erfahren Sie, wie Sie die in Ihren Cloud Storage-Buckets gespeicherten Objekte auflisten. Diese werden in der Liste lexikografisch nach dem Namen sortiert aufgeführt.

Hinweise

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage-Objekt-Betrachter (roles/storage.objectViewer) für den Bucket zuzuweisen, der die aufzulistenden Objekte enthält, um die Berechtigungen zu erhalten, die Sie zum Auflisten benötigen. Wenn Sie Objekte in verwalteten Ordnern auflisten möchten, können Sie roles/storage.objectViewer für den verwalteten Ordner, der die Objekte enthält, die Sie aufrufen möchten, anstelle des Buckets gewähren.

Wenn Sie die Trusted Cloud Console zum Ausführen der Aufgaben auf dieser Seite verwenden möchten, bitten Sie Ihren Administrator, Ihnen zusätzlich zur Rolle „Storage-Objekt-Betrachter“ (roles/storage.objectViewer) die einfache Rolle „Betrachter“ (roles/viewer) zuzuweisen.

Diese Rollen enthalten die Berechtigungen, die zum Auflisten von Objekten erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

  • storage.objects.list
  • storage.buckets.list
    • Diese Berechtigung ist nur erforderlich, wenn Sie die Aufgaben auf dieser Seite in der Trusted Cloud Konsole ausführen möchten.

Sie können diese Berechtigungen auch mit anderen vordefinierten Rollen oder benutzerdefinierten Rollen erhalten.

Informationen zum Zuweisen von Rollen für Buckets finden Sie unter IAM mit Buckets verwenden.

Objekte in einem Bucket auflisten

Console

  1. Wechseln Sie in der Trusted Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Bucket-Liste auf den Namen des Buckets, dessen Inhalt Sie sehen möchten.

Befehlszeile

Führen Sie den Befehl gcloud storage ls aus:

gcloud storage ls gs://BUCKET_NAME

Wobei:

  • BUCKET_NAME ist der Name des Buckets, der die Objekte enthält, die Sie auflisten möchten. Beispiel: my-bucket.

Clientbibliotheken

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.

Im folgenden Beispiel werden alle Objekte eines Buckets aufgelistet:

namespace gcs = ::google::cloud::storage;
[](gcs::Client client, std::string const& bucket_name) {
  for (auto&& object_metadata : client.ListObjects(bucket_name)) {
    if (!object_metadata) throw std::move(object_metadata).status();

    std::cout << "bucket_name=" << object_metadata->bucket()
              << ", object_name=" << object_metadata->name() << "\n";
  }
}

Im folgenden Beispiel werden Objekte mit einem bestimmten Präfix aufgelistet:

namespace gcs = ::google::cloud::storage;
[](gcs::Client client, std::string const& bucket_name,
   std::string const& bucket_prefix) {
  for (auto&& object_metadata :
       client.ListObjects(bucket_name, gcs::Prefix(bucket_prefix))) {
    if (!object_metadata) throw std::move(object_metadata).status();

    std::cout << "bucket_name=" << object_metadata->bucket()
              << ", object_name=" << object_metadata->name() << "\n";
  }
}

C#

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C# API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.

Im folgenden Beispiel werden alle Objekte eines Buckets aufgelistet:


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

public class ListFilesSample
{
    public IEnumerable<Google.Apis.Storage.v1.Data.Object> ListFiles(
        string bucketName = "your-unique-bucket-name")
    {
        var storage = StorageClient.Create();
        var storageObjects = storage.ListObjects(bucketName);
        Console.WriteLine($"Files in bucket {bucketName}:");
        foreach (var storageObject in storageObjects)
        {
            Console.WriteLine(storageObject.Name);
        }

        return storageObjects;
    }
}

Im folgenden Beispiel werden Objekte mit einem bestimmten Präfix aufgelistet:


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

public class ListFilesWithPrefixSample
{
    /// <summary>
    /// Prefixes and delimiters can be used to emulate directory listings.
    /// Prefixes can be used to filter objects starting with prefix.
    /// The delimiter argument can be used to restrict the results to only the
    /// objects in the given "directory". Without the delimiter, the entire  tree
    /// under the prefix is returned.
    /// For example, given these objects:
    ///   a/1.txt
    ///   a/b/2.txt
    ///
    /// If you just specify prefix="a/", you'll get back:
    ///   a/1.txt
    ///   a/b/2.txt
    ///
    /// However, if you specify prefix="a/" and delimiter="/", you'll get back:
    ///   a/1.txt
    /// </summary>
    /// <param name="bucketName">The bucket to list the objects from.</param>
    /// <param name="prefix">The prefix to match. Only objects with names that start with this string will
    /// be returned. This parameter may be null or empty, in which case no filtering
    /// is performed.</param>
    /// <param name="delimiter">Used to list in "directory mode". Only objects whose names (aside from the prefix)
    /// do not contain the delimiter will be returned.</param>
    public IEnumerable<Google.Apis.Storage.v1.Data.Object> ListFilesWithPrefix(
        string bucketName = "your-unique-bucket-name",
        string prefix = "your-prefix",
        string delimiter = "your-delimiter")
    {
        var storage = StorageClient.Create();
        var options = new ListObjectsOptions { Delimiter = delimiter };
        var storageObjects = storage.ListObjects(bucketName, prefix, options);
        Console.WriteLine($"Objects in bucket {bucketName} with prefix {prefix}:");
        foreach (var storageObject in storageObjects)
        {
            Console.WriteLine(storageObject.Name);
        }
        return storageObjects;
    }
}

Go

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.

Im folgenden Beispiel werden alle Objekte eines Buckets aufgelistet:

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

	"cloud.google.com/go/storage"
	"google.golang.org/api/iterator"
)

// listFiles lists objects within specified bucket.
func listFiles(w io.Writer, bucket string) error {
	// bucket := "bucket-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()

	it := client.Bucket(bucket).Objects(ctx, nil)
	for {
		attrs, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("Bucket(%q).Objects: %w", bucket, err)
		}
		fmt.Fprintln(w, attrs.Name)
	}
	return nil
}

Im folgenden Beispiel werden Objekte mit einem bestimmten Präfix aufgelistet:

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

	"cloud.google.com/go/storage"
	"google.golang.org/api/iterator"
)

// listFilesWithPrefix lists objects using prefix and delimeter.
func listFilesWithPrefix(w io.Writer, bucket, prefix, delim string) error {
	// bucket := "bucket-name"
	// prefix := "/foo"
	// delim := "_"
	ctx := context.Background()
	client, err := storage.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("storage.NewClient: %w", err)
	}
	defer client.Close()

	// Prefixes and delimiters can be used to emulate directory listings.
	// Prefixes can be used to filter objects starting with prefix.
	// The delimiter argument can be used to restrict the results to only the
	// objects in the given "directory". Without the delimiter, the entire tree
	// under the prefix is returned.
	//
	// For example, given these blobs:
	//   /a/1.txt
	//   /a/b/2.txt
	//
	// If you just specify prefix="a/", you'll get back:
	//   /a/1.txt
	//   /a/b/2.txt
	//
	// However, if you specify prefix="a/" and delim="/", you'll get back:
	//   /a/1.txt
	ctx, cancel := context.WithTimeout(ctx, time.Second*10)
	defer cancel()

	it := client.Bucket(bucket).Objects(ctx, &storage.Query{
		Prefix:    prefix,
		Delimiter: delim,
	})
	for {
		attrs, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("Bucket(%q).Objects(): %w", bucket, err)
		}
		fmt.Fprintln(w, attrs.Name)
	}
	return nil
}

Java

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.

Im folgenden Beispiel werden alle Objekte eines Buckets aufgelistet:

import com.google.api.gax.paging.Page;
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class ListObjects {
  public static void listObjects(String projectId, String bucketName) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

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

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Page<Blob> blobs = storage.list(bucketName);

    for (Blob blob : blobs.iterateAll()) {
      System.out.println(blob.getName());
    }
  }
}

Im folgenden Beispiel werden Objekte mit einem bestimmten Präfix aufgelistet:

import com.google.api.gax.paging.Page;
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class ListObjectsWithPrefix {
  public static void listObjectsWithPrefix(
      String projectId, String bucketName, String directoryPrefix) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

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

    // The directory prefix to search for
    // String directoryPrefix = "myDirectory/"

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    /**
     * Using the Storage.BlobListOption.currentDirectory() option here causes the results to display
     * in a "directory-like" mode, showing what objects are in the directory you've specified, as
     * well as what other directories exist in that directory. For example, given these blobs:
     *
     * <p>a/1.txt a/b/2.txt a/b/3.txt
     *
     * <p>If you specify prefix = "a/" and don't use Storage.BlobListOption.currentDirectory(),
     * you'll get back:
     *
     * <p>a/1.txt a/b/2.txt a/b/3.txt
     *
     * <p>However, if you specify prefix = "a/" and do use
     * Storage.BlobListOption.currentDirectory(), you'll get back:
     *
     * <p>a/1.txt a/b/
     *
     * <p>Because a/1.txt is the only file in the a/ directory and a/b/ is a directory inside the
     * /a/ directory.
     */
    Page<Blob> blobs =
        storage.list(
            bucketName,
            Storage.BlobListOption.prefix(directoryPrefix),
            Storage.BlobListOption.currentDirectory());

    for (Blob blob : blobs.iterateAll()) {
      System.out.println(blob.getName());
    }
  }
}

Node.js

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.

Im folgenden Beispiel werden alle Objekte eines Buckets aufgelistet:

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

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

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

async function listFiles() {
  // Lists files in the bucket
  const [files] = await storage.bucket(bucketName).getFiles();

  console.log('Files:');
  files.forEach(file => {
    console.log(file.name);
  });
}

listFiles().catch(console.error);

Im folgenden Beispiel werden Objekte mit einem bestimmten Präfix aufgelistet:

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

// The directory prefix to search for
// const prefix = 'myDirectory/';

// The delimiter to use
// const delimiter = '/';

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

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

async function listFilesByPrefix() {
  /**
   * This can be used to list all blobs in a "folder", e.g. "public/".
   *
   * The delimiter argument can be used to restrict the results to only the
   * "files" in the given "folder". Without the delimiter, the entire tree under
   * the prefix is returned. For example, given these blobs:
   *
   *   /a/1.txt
   *   /a/b/2.txt
   *
   * If you just specify prefix = 'a/', you'll get back:
   *
   *   /a/1.txt
   *   /a/b/2.txt
   *
   * However, if you specify prefix='a/' and delimiter='/', you'll get back:
   *
   *   /a/1.txt
   */
  const options = {
    prefix: prefix,
  };

  if (delimiter) {
    options.delimiter = delimiter;
  }

  // Lists files in the bucket, filtered by a prefix
  const [files] = await storage.bucket(bucketName).getFiles(options);

  console.log('Files:');
  files.forEach(file => {
    console.log(file.name);
  });
}

listFilesByPrefix().catch(console.error);

PHP

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.

Im folgenden Beispiel werden alle Objekte eines Buckets aufgelistet:

use Google\Cloud\Storage\StorageClient;

/**
 * List Cloud Storage bucket objects.
 *
 * @param string $bucketName The name of your Cloud Storage bucket.
 *        (e.g. 'my-bucket')
 */
function list_objects(string $bucketName): void
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    foreach ($bucket->objects() as $object) {
        printf('Object: %s' . PHP_EOL, $object->name());
    }
}

Im folgenden Beispiel werden Objekte mit einem bestimmten Präfix aufgelistet:

use Google\Cloud\Storage\StorageClient;

/**
 * List Cloud Storage bucket objects with specified prefix.
 *
 * @param string $bucketName The name of your Cloud Storage bucket.
 *        (e.g. 'my-bucket')
 * @param string $directoryPrefix the prefix to use in the list objects API call.
 *        (e.g. 'myDirectory/')
 */
function list_objects_with_prefix(string $bucketName, string $directoryPrefix): void
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $options = ['prefix' => $directoryPrefix];
    foreach ($bucket->objects($options) as $object) {
        printf('Object: %s' . PHP_EOL, $object->name());
    }
}

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.

Im folgenden Beispiel werden alle Objekte eines Buckets aufgelistet:

from google.cloud import storage


def list_blobs(bucket_name):
    """Lists all the blobs in the bucket."""
    # bucket_name = "your-bucket-name"

    storage_client = storage.Client()

    # Note: Client.list_blobs requires at least package version 1.17.0.
    blobs = storage_client.list_blobs(bucket_name)

    # Note: The call returns a response only when the iterator is consumed.
    for blob in blobs:
        print(blob.name)

Im folgenden Beispiel werden Objekte mit einem bestimmten Präfix aufgelistet:

from google.cloud import storage


def list_blobs_with_prefix(bucket_name, prefix, delimiter=None):
    """Lists all the blobs in the bucket that begin with the prefix.

    This can be used to list all blobs in a "folder", e.g. "public/".

    The delimiter argument can be used to restrict the results to only the
    "files" in the given "folder". Without the delimiter, the entire tree under
    the prefix is returned. For example, given these blobs:

        a/1.txt
        a/b/2.txt

    If you specify prefix ='a/', without a delimiter, you'll get back:

        a/1.txt
        a/b/2.txt

    However, if you specify prefix='a/' and delimiter='/', you'll get back
    only the file directly under 'a/':

        a/1.txt

    As part of the response, you'll also get back a blobs.prefixes entity
    that lists the "subfolders" under `a/`:

        a/b/


    Note: If you only want to list prefixes a/b/ and don't want to iterate over
    blobs, you can do

    ```
    for page in blobs.pages:
        print(page.prefixes)
    ```
    """

    storage_client = storage.Client()

    # Note: Client.list_blobs requires at least package version 1.17.0.
    blobs = storage_client.list_blobs(
        bucket_name, prefix=prefix, delimiter=delimiter
    )

    # Note: The call returns a response only when the iterator is consumed.
    print("Blobs:")
    for blob in blobs:
        print(blob.name)

    if delimiter:
        print("Prefixes:")
        for prefix in blobs.prefixes:
            print(prefix)

Ruby

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.

Im folgenden Beispiel werden alle Objekte eines Buckets aufgelistet:

def list_files bucket_name:
  # The ID of your GCS bucket
  # bucket_name = "your-unique-bucket-name"

  require "google/cloud/storage"

  storage = Google::Cloud::Storage.new
  bucket  = storage.bucket bucket_name

  bucket.files.each do |file|
    puts file.name
  end
end

Im folgenden Beispiel werden Objekte mit einem bestimmten Präfix aufgelistet:

def list_files_with_prefix bucket_name:, prefix:, delimiter: nil
  # Lists all the files in the bucket that begin with the prefix.
  #
  # This can be used to list all files in a "folder", e.g. "public/".
  #
  # The delimiter argument can be used to restrict the results to only the
  # "files" in the given "folder". Without the delimiter, the entire tree under
  # the prefix is returned. For example, given these files:
  #
  #     a/1.txt
  #     a/b/2.txt
  #
  # If you just specify `prefix: "a"`, you will get back:
  #
  #     a/1.txt
  #     a/b/2.txt
  #
  # However, if you specify `prefix: "a"` and `delimiter: "/"`, you will get back:
  #
  #     a/1.txt

  # The ID of your GCS bucket
  # bucket_name = "your-unique-bucket-name"

  # The directory prefix to search for
  # prefix = "a"

  # The delimiter to be used to restrict the results
  # delimiter = "/"

  require "google/cloud/storage"

  storage = Google::Cloud::Storage.new
  bucket  = storage.bucket bucket_name
  files   = bucket.files prefix: prefix, delimiter: delimiter

  files.each do |file|
    puts file.name
  end
end

REST APIs

JSON API

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

  2. Verwenden Sie cURL, um die JSON API mit einer Anfrage zum Auflisten von Objekten aufzurufen:

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

    Dabei ist BUCKET_NAME der Name des Buckets, dessen Objekte Sie auflisten möchten. Beispiel: my-bucket.

XML API

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

  2. Verwenden Sie cURL, um die XML API mit einer GET-Bucket-Anfrage aufzurufen:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.s3nsapis.fr/BUCKET_NAME?list-type=2"

    Dabei ist BUCKET_NAME der Name des Buckets, dessen Objekte Sie auflisten möchten. Beispiel: my-bucket.

    Sie können den Abfragestringparameter prefix=PREFIX verwenden, um die Ergebnisse auf Buckets mit dem angegebenen Präfix zu beschränken.

Objekte in einem Ordner auflisten

Console

  1. Wechseln Sie in der Trusted Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Bucket-Liste auf den Namen des Buckets, der den Ordner enthält.

  3. Klicken Sie auf der Seite Bucket-Details auf dem Tab Objekte auf den Namen des Ordners, dessen Inhalt Sie sehen möchten.

Befehlszeile

Verwenden Sie den Befehl gcloud storage ls, um die Objekte in einem Ordner aufzulisten:

gcloud storage ls gs://BUCKET_NAME/FOLDER_NAME

Wobei:

  • BUCKET_NAME ist der Name des Buckets, der den Ordner enthält. Beispiel: my-bucket.

  • FOLDER_NAME ist der Name des Ordners, der die Objekte enthält, die Sie auflisten möchten. Beispiel: my-folder.

REST APIs

JSON API

Wenn Sie die Objekte in einem Ordner auflisten möchten, verwenden Sie eine Anfrage zum Auflisten von Objekten mit den Parametern prefix und delimiter. Wenn der Parameter prefix festgelegt ist, werden beim Listenvorgang nur Objekte und Ordner unter dem Präfix zurückgegeben. Wenn der Parameter delimiter festgelegt ist, wird die Liste prefixes[] in der Antwort mit den Namen der Ordner unter dem angegebenen Präfix gefüllt.

Beispiel:

  • Wenn Sie alle Objekte im Ordner image/ im Bucket my-bucket auflisten möchten, verwenden Sie die folgende URL: "https://storage.s3nsapis.fr/storage/v1/b/my-bucket/o?prefix=image&delimiter=/".

    Dadurch könnten die Objekte my-bucket/image/cat.jpeg und my-bucket/image/dog.jpeg zurückgegeben werden.

  • Wenn Sie Objekte in Unterordnern in image/ einschließen möchten, entfernen Sie den Parameter delimiter: "https://storage.s3nsapis.fr/storage/v1/b/my-bucket/o?prefix=image".

    Dadurch könnten die Objekte my-bucket/image/cat.jpeg, my-bucket/image/dog.jpeg und my-bucket/image/dog/shiba.jpeg zurückgegeben werden.

Wenn Sie Platzhalter in Ihrer Anfrage zum Auflisten von Objekten verwenden und Objekte anhand eines Glob-Ausdrucks abgleichen möchten, verwenden Sie den Parameter matchGlob. Beispielsweise führt matchGlob=**.jpeg zu Übereinstimmungen mit allen Objekten, die mit .jpeg enden. Wenn Sie matchGlob verwenden, müssen Sie delimiter auf / setzen.

Mit der folgenden URL werden beispielsweise alle Objekte im Ordner image abgeglichen, die mit .jpeg enden: "https://storage.s3nsapis.fr/storage/v1/b/my-bucket/o?prefix=image&delimiter=/&matchGlob=**.jpeg"

Weitere Informationen zur Verwendung von Parametern zum Filtern von Objekten finden Sie in der JSON API-Referenzdokumentation zur Objektliste.

Anwendungsfall

Die Verwendung von prefix zum Auflisten der Inhalte eines Ordners kann nützlich sein, wenn Sie nur die Berechtigung zum Auflisten von Objekten im Ordner, aber nicht den gesamten Bucket haben. Angenommen, Sie haben die IAM-Rolle „Storage-Objekt-Betrachter“ (roles/storage.objectViewer) für den verwalteten Ordner my-bucket/my-managed-folder-a/, aber nicht für den verwalteten Ordner my-bucket/my-managed-folder-b/. Wenn Sie nur die Objekte in my-managed-folder-a zurückgeben möchten, können Sie prefix=my-managed-folder-a/ angeben.

Objekte filtern

Wenn Sie Objekte auflisten, können Sie in Ihrer Listenanfrage Präfixe oder Suffixe verwenden, um Objekte nach Namen zu filtern.

Console

Informationen zum Filtern und Sortieren von Objekten in Buckets oder Ordnern finden Sie unter Filtern und Sortieren.

Befehlszeile

Sie können Platzhalter in Ihrem gcloud storage ls-Befehl verwenden, um Objekte nach Präfix oder Suffix zu filtern. Mit dem folgenden Befehl werden beispielsweise nur Objekte im Bucket my-bucket aufgelistet, deren Name mit image beginnt und mit .png endet:

gcloud storage ls gs://my-bucket/image*.png

Wenn die Anfrage erfolgreich ist, sieht die Antwort in etwa so aus:

gs://my-bucket/image.png
gs://my-bucket/image-dog.png
gs://my-bucket/image-cat.png
...

Mit Doppelstern-Platzhaltern können Sie null oder mehr Ordnerebenen in einem Pfad abgleichen. Mit dem folgenden Befehl werden beispielsweise nur Objekte aufgelistet, deren Name in einem beliebigen Ordner oder Unterordner im Bucket my-bucket mit .jpeg endet:

gcloud storage ls gs://my-bucket/**/*.jpeg

Wenn die Anfrage erfolgreich ist, sieht die Antwort in etwa so aus:

gs://my-bucket/puppy.jpeg
gs://my-bucket/pug.jpeg
gs://my-bucket/pets/dog.jpeg
...

REST APIs

Informationen zum Filtern von Objekten nach Ordner- oder Objektnamenspräfix finden Sie unter Objekte in Ordnern auflisten.

Leistungsaspekte beim Auflisten von Objekten

Die zugrunde liegende Struktur von Buckets mit aktiviertem hierarchischen Namespace wirkt sich auf die Leistung des Vorgangs zum Auflisten von Objekten aus, verglichen mit Buckets mit flachem Namespace. Weitere Informationen finden Sie unter Leistung in Buckets mit aktiviertem hierarchischen Namespace optimieren.

Nächste Schritte