Répertorier les objets

Cette page vous explique comment répertorier les objets stockés dans vos buckets Cloud Storage, classés par ordre alphabétique dans la liste. Pour obtenir une présentation des buckets et des objets, consultez la page Termes clés.

Pour répertorier les objets dans un bucket, procédez comme suit :

Console

  1. Ouvrez le navigateur Cloud Storage dans Google Cloud Console.
    Ouvrir le navigateur Cloud Storage
  2. Dans la liste des buckets, sélectionnez le bucket dont vous souhaitez afficher le contenu.

  3. Vous pouvez également utiliser le champ Filtrer par préfixe de nom pour limiter les résultats de votre liste de buckets aux objets ayant le préfixe spécifié.

gsutil

Exécutez la commande gsutil ls avec l'indicateur -r :

gsutil ls -r gs://[BUCKET_NAME]/**

Où :

  • [BUCKET_NAME] correspond au nom du bucket dont vous souhaitez répertorier les objets. Exemple :my-bucket

La réponse est semblable à ceci :

gs://[BUCKET_NAME]/[OBJECT_NAME1]
    gs://[BUCKET_NAME]/[OBJECT_NAME2]
    gs://[BUCKET_NAME]/[OBJECT_NAME3]
    ...
    

Exemples de code

C++

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.

L'exemple suivant répertorie tous les objets d'un bucket :

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

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

L'exemple suivant répertorie les objets ayant un préfixe donné :

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

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

C#

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.

L'exemple suivant répertorie tous les objets d'un bucket :

private void ListObjects(string bucketName)
    {
        var storage = StorageClient.Create();
        foreach (var storageObject in storage.ListObjects(bucketName, ""))
        {
            Console.WriteLine(storageObject.Name);
        }
    }

L'exemple suivant répertorie les objets ayant un préfixe donné :

private void ListObjects(string bucketName, string prefix,
        string delimiter)
    {
        var storage = StorageClient.Create();
        var options = new ListObjectsOptions() { Delimiter = delimiter };
        foreach (var storageObject in storage.ListObjects(
            bucketName, prefix, options))
        {
            Console.WriteLine(storageObject.Name);
        }
    }

Go

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.

L'exemple suivant répertorie tous les objets d'un bucket :

ctx := context.Background()

    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 err
    	}
    	fmt.Fprintln(w, attrs.Name)
    }

L'exemple suivant répertorie les objets ayant un préfixe donné :

// Prefixes and delimiters can be used to emulate directory listings.
    // Prefixes can be used 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 := context.Background()

    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 err
    	}
    	fmt.Fprintln(w, attrs.Name)
    }

Java

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.

L'exemple suivant répertorie tous les objets d'un bucket :

Page<Blob> blobs = bucket.list();
    for (Blob blob : blobs.iterateAll()) {
      // do something with the blob
    }

L'exemple suivant répertorie les objets ayant un préfixe donné :

Page<Blob> blobs =
        storage.list(
            bucketName, BlobListOption.currentDirectory(), BlobListOption.prefix(directory));
    for (Blob blob : blobs.iterateAll()) {
      // do something with the blob
    }

Node.js

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.

L'exemple suivant répertorie tous les objets d'un bucket :

/**
     * TODO(developer): Uncomment the following line before running the sample.
     */
    // const bucketName = 'Name of a bucket, e.g. my-bucket';

    // 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);

L'exemple suivant répertorie les objets ayant un préfixe donné :

/**
     * TODO(developer): Uncomment the following lines before running the sample.
     */
    // const bucketName = 'Name of a bucket, e.g. my-bucket';
    // const prefix = 'Prefix by which to filter, e.g. public/';
    // const delimiter = 'Delimiter to use, e.g. /';

    // 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

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.

L'exemple suivant répertorie tous les objets d'un bucket :

use Google\Cloud\Storage\StorageClient;

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

L'exemple suivant répertorie les objets ayant un préfixe donné :

use Google\Cloud\Storage\StorageClient;

    /**
     * List Cloud Storage bucket objects with specified prefix.
     *
     * @param string $bucketName the name of your Cloud Storage bucket.
     *
     * @return void
     */
    function list_objects_with_prefix($bucketName, $prefix)
    {
        $storage = new StorageClient();
        $bucket = $storage->bucket($bucketName);
        $options = ['prefix' => $prefix];
        foreach ($bucket->objects($options) as $object) {
            printf('Object: %s' . PHP_EOL, $object->name());
        }
    }

Python

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.

L'exemple suivant répertorie tous les objets d'un bucket :

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)

        for blob in blobs:
            print(blob.name)

    

L'exemple suivant répertorie les objets ayant un préfixe donné :

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 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

        Additionally, the same request will return blobs.prefixes populated with:

            a/b/
        """

        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
        )

        print("Blobs:")
        for blob in blobs:
            print(blob.name)

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

    

Ruby

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.

L'exemple suivant répertorie tous les objets d'un bucket :

# project_id  = "Your Google Cloud project ID"
    # bucket_name = "Your Google Cloud Storage bucket name"

    require "google/cloud/storage"

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

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

L'exemple suivant répertorie les objets ayant un préfixe donné :

# project_id  = "Your Google Cloud project ID"
    # bucket_name = "Your Google Cloud Storage bucket name"
    # prefix      = "Filter results to files whose names begin with this prefix"

    require "google/cloud/storage"

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

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

API REST

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Utilisez cURL pour appeler l'API JSON avec une requête GET Bucket :

    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
          "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]/o"

    Où :

    • [ACCESS_TOKEN] correspond au jeton d'accès que vous avez généré à l'étape 1.
    • [BUCKET_NAME] correspond au nom du bucket dont vous souhaitez répertorier les objets. Exemple :my-bucket

    Vous pouvez utiliser un paramètre de chaîne de requête prefix=[PREFIX] pour limiter les résultats aux objets comportant le préfixe spécifié.

API XML

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Utilisez cURL pour appeler l'API XML avec une requête GET Bucket :

    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
          "https://storage.googleapis.com/[BUCKET_NAME]"

    Où :

    • [ACCESS_TOKEN] correspond au jeton d'accès que vous avez généré à l'étape 1.
    • [BUCKET_NAME] correspond au nom du bucket dont vous souhaitez répertorier les objets. Exemple :my-bucket

    Vous pouvez utiliser un paramètre de chaîne de requête prefix=[PREFIX] pour limiter les résultats aux buckets comportant le préfixe spécifié.

Étape suivante