列出存储分区

本页面介绍了如何列出项目中的 Cloud Storage 存储桶,这些存储桶按名称的字典顺序在列表中排序。

须知事项

如需获得列出存储桶所需的权限,请让管理员向您授予您要列出的存储桶所属项目的 Storage Admin (roles/storage.admin) IAM 角色或 Viewer (roles/viewer) 基本角色。

如需详细了解如何授予项目角色,请参阅管理对项目的访问权限

这些角色包含列出存储桶所需的 storage.buckets.list 权限。您还可以通过自定义角色获取此权限。

列出项目中的存储桶

控制台

  1. 在 Cloud de Confiance 控制台中,转到 Cloud Storage 存储桶页面。

    进入“存储桶”

属于当前所选项目的存储桶会显示在列表中。

(可选)使用过滤和排序来限制和整理列表中的结果。

命令行

  1. In the Cloud de Confiance console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Cloud de Confiance console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 在开发环境中,运行 gcloud storage ls 命令:

    gcloud storage ls

    响应如下例所示:

    gs://BUCKET_NAME1/
      gs://BUCKET_NAME2/
      gs://BUCKET_NAME3/
      ...

  3. 客户端库

    C++

    如需了解详情,请参阅 Cloud Storage C++ API 参考文档

    如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

    在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr

    namespace gcs = ::google::cloud::storage;
    using ::google::cloud::StatusOr;
    [](gcs::Client client) {
      int count = 0;
      gcs::ListBucketsReader bucket_list = client.ListBuckets();
      for (auto&& bucket_metadata : bucket_list) {
        if (!bucket_metadata) throw std::move(bucket_metadata).status();
    
        std::cout << bucket_metadata->name() << "\n";
        ++count;
      }
    
      if (count == 0) {
        std::cout << "No buckets in default project\n";
      }
    }

    C#

    如需了解详情,请参阅 Cloud Storage C# API 参考文档

    如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

    在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr

    
    using Google.Apis.Storage.v1.Data;
    using Google.Cloud.Storage.V1;
    using System;
    using System.Collections.Generic;
    
    public class ListBucketsSample
    {
        public IEnumerable<Bucket> ListBuckets(string projectId = "your-project-id")
        {
            var storage = StorageClient.Create();
            var buckets = storage.ListBuckets(projectId);
            Console.WriteLine("Buckets:");
            foreach (var bucket in buckets)
            {
                Console.WriteLine(bucket.Name);
            }
            return buckets;
        }
    }

    Go

    如需了解详情,请参阅 Cloud Storage Go API 参考文档

    如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

    在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr

    import (
    	"context"
    	"fmt"
    	"io"
    	"time"
    
    	"cloud.google.com/go/storage"
    	"google.golang.org/api/iterator"
    )
    
    // listBuckets lists buckets in the project.
    func listBuckets(w io.Writer, projectID string) ([]string, error) {
    	// projectID := "my-project-id"
    	ctx := context.Background()
    	client, err := storage.NewClient(ctx)
    	if err != nil {
    		return nil, fmt.Errorf("storage.NewClient: %w", err)
    	}
    	defer client.Close()
    
    	ctx, cancel := context.WithTimeout(ctx, time.Second*30)
    	defer cancel()
    
    	var buckets []string
    	it := client.Buckets(ctx, projectID)
    	for {
    		battrs, err := it.Next()
    		if err == iterator.Done {
    			break
    		}
    		if err != nil {
    			return nil, err
    		}
    		buckets = append(buckets, battrs.Name)
    		fmt.Fprintf(w, "Bucket: %v\n", battrs.Name)
    	}
    	return buckets, nil
    }
    

    Java

    如需了解详情,请参阅 Cloud Storage Java API 参考文档

    如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

    在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr

    import com.google.api.gax.paging.Page;
    import com.google.cloud.storage.Bucket;
    import com.google.cloud.storage.Storage;
    import com.google.cloud.storage.StorageOptions;
    
    public class ListBuckets {
      public static void listBuckets(String projectId) {
        // The ID of your GCP project
        // String projectId = "your-project-id";
    
        Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
        Page<Bucket> buckets = storage.list();
    
        for (Bucket bucket : buckets.iterateAll()) {
          System.out.println(bucket.getName());
        }
      }
    }

    Node.js

    如需了解详情,请参阅 Cloud Storage Node.js API 参考文档

    如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

    在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr

    // Imports the Google Cloud client library
    const {Storage} = require('@google-cloud/storage');
    
    // Creates a client
    const storage = new Storage();
    
    async function listBuckets() {
      const [buckets] = await storage.getBuckets();
    
      console.log('Buckets:');
      buckets.forEach(bucket => {
        console.log(bucket.name);
      });
    }
    
    listBuckets().catch(console.error);

    PHP

    如需了解详情,请参阅 Cloud Storage PHP API 参考文档

    如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

    在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr

    use Google\Cloud\Storage\StorageClient;
    
    /**
     * List all Cloud Storage buckets for the current project.
     */
    function list_buckets(): void
    {
        $storage = new StorageClient();
        foreach ($storage->buckets() as $bucket) {
            printf('Bucket: %s' . PHP_EOL, $bucket->name());
        }
    }

    Python

    如需了解详情,请参阅 Cloud Storage Python API 参考文档

    如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

    在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr

    from google.cloud import storage
    
    
    def list_buckets():
        """Lists all buckets."""
    
        storage_client = storage.Client()
        buckets = storage_client.list_buckets()
    
        for bucket in buckets:
            print(bucket.name)
    
    

    Ruby

    如需了解详情,请参阅 Cloud Storage Ruby API 参考文档

    如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

    在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr

    def list_buckets
      require "google/cloud/storage"
    
      storage = Google::Cloud::Storage.new
    
      storage.buckets.each do |bucket|
        puts bucket.name
      end
    end

    REST API

    JSON API

    1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

    2. 使用 cURL,通过列出存储桶请求调用 JSON API

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

      其中,PROJECT_IDENTIFIER 是包含您要列出的存储桶的项目的 ID 或编号。例如 my-project

    XML API

    1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

    2. 使用 cURL,通过 GET Service 请求调用 XML API

      curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "x-goog-project-id: PROJECT_ID" \
        "https://storage.s3nsapis.fr"

      其中,PROJECT_ID 是包含您要列出的存储桶的项目的 ID,例如 my-project

后续步骤