Recuperar metadados de um bucket do Cloud Storage.
Mais informações
Para ver a documentação detalhada que inclui este exemplo de código, consulte:
- Configurar o compartilhamento de recursos entre origens (CORS)
- Conseguir informações sobre intervalos
- Gerenciar os ciclos de vida dos objetos
- Usar chaves de criptografia gerenciadas pelo cliente
- Usar armazenamento birregional
- Como usar rótulos em intervalos
Exemplo de código
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
using Google.Apis.Storage.v1.Data;
using Google.Cloud.Storage.V1;
using System;
public class GetBucketMetadataSample
{
public Bucket GetBucketMetadata(string bucketName = "your-unique-bucket-name")
{
var storage = StorageClient.Create();
var bucket = storage.GetBucket(bucketName, new GetBucketOptions { Projection = Projection.Full });
Console.WriteLine($"Bucket:\t{bucket.Name}");
Console.WriteLine($"Acl:\t{bucket.Acl}");
Console.WriteLine($"Billing:\t{bucket.Billing}");
Console.WriteLine($"Cors:\t{bucket.Cors}");
Console.WriteLine($"DefaultEventBasedHold:\t{bucket.DefaultEventBasedHold}");
Console.WriteLine($"DefaultObjectAcl:\t{bucket.DefaultObjectAcl}");
Console.WriteLine($"Encryption:\t{bucket.Encryption}");
if (bucket.Encryption != null)
{
Console.WriteLine($"KmsKeyName:\t{bucket.Encryption.DefaultKmsKeyName}");
}
Console.WriteLine($"Id:\t{bucket.Id}");
Console.WriteLine($"Kind:\t{bucket.Kind}");
Console.WriteLine($"Lifecycle:\t{bucket.Lifecycle}");
Console.WriteLine($"Location:\t{bucket.Location}");
Console.WriteLine($"LocationType:\t{bucket.LocationType}");
Console.WriteLine($"Logging:\t{bucket.Logging}");
Console.WriteLine($"Metageneration:\t{bucket.Metageneration}");
Console.WriteLine($"Owner:\t{bucket.Owner}");
Console.WriteLine($"ProjectNumber:\t{bucket.ProjectNumber}");
Console.WriteLine($"RetentionPolicy:\t{bucket.RetentionPolicy}");
Console.WriteLine($"SelfLink:\t{bucket.SelfLink}");
Console.WriteLine($"StorageClass:\t{bucket.StorageClass}");
Console.WriteLine($"TimeCreated:\t{bucket.TimeCreated}");
Console.WriteLine($"Updated:\t{bucket.Updated}");
Console.WriteLine($"Versioning:\t{bucket.Versioning}");
Console.WriteLine($"Website:\t{bucket.Website}");
Console.WriteLine($"TurboReplication:\t{bucket.Rpo}");
if (bucket.Labels != null)
{
Console.WriteLine("Labels:");
foreach (var label in bucket.Labels)
{
Console.WriteLine($"{label.Key}:\t{label.Value}");
}
}
return bucket;
}
}
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name) {
StatusOr<gcs::BucketMetadata> bucket_metadata =
client.GetBucketMetadata(bucket_name);
if (!bucket_metadata) {
throw std::runtime_error(bucket_metadata.status().message());
}
std::cout << "The metadata for bucket " << bucket_metadata->name() << " is "
<< *bucket_metadata << "\n";
}
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
import (
"context"
"fmt"
"io"
"time"
"cloud.google.com/go/storage"
)
// getBucketMetadata gets the bucket metadata.
func getBucketMetadata(w io.Writer, bucketName string) (*storage.BucketAttrs, error) {
// bucketName := "bucket-name"
ctx := context.Background()
client, err := storage.NewClient(ctx)
if err != nil {
return nil, fmt.Errorf("storage.NewClient: %v", err)
}
defer client.Close()
ctx, cancel := context.WithTimeout(ctx, time.Second*10)
defer cancel()
attrs, err := client.Bucket(bucketName).Attrs(ctx)
if err != nil {
return nil, fmt.Errorf("Bucket(%q).Attrs: %v", bucketName, err)
}
fmt.Fprintf(w, "BucketName: %v\n", attrs.Name)
fmt.Fprintf(w, "Location: %v\n", attrs.Location)
fmt.Fprintf(w, "LocationType: %v\n", attrs.LocationType)
fmt.Fprintf(w, "StorageClass: %v\n", attrs.StorageClass)
fmt.Fprintf(w, "Turbo replication (RPO): %v\n", attrs.RPO)
fmt.Fprintf(w, "TimeCreated: %v\n", attrs.Created)
fmt.Fprintf(w, "Metageneration: %v\n", attrs.MetaGeneration)
fmt.Fprintf(w, "PredefinedACL: %v\n", attrs.PredefinedACL)
if attrs.Encryption != nil {
fmt.Fprintf(w, "DefaultKmsKeyName: %v\n", attrs.Encryption.DefaultKMSKeyName)
}
if attrs.Website != nil {
fmt.Fprintf(w, "IndexPage: %v\n", attrs.Website.MainPageSuffix)
fmt.Fprintf(w, "NotFoundPage: %v\n", attrs.Website.NotFoundPage)
}
fmt.Fprintf(w, "DefaultEventBasedHold: %v\n", attrs.DefaultEventBasedHold)
if attrs.RetentionPolicy != nil {
fmt.Fprintf(w, "RetentionEffectiveTime: %v\n", attrs.RetentionPolicy.EffectiveTime)
fmt.Fprintf(w, "RetentionPeriod: %v\n", attrs.RetentionPolicy.RetentionPeriod)
fmt.Fprintf(w, "RetentionPolicyIsLocked: %v\n", attrs.RetentionPolicy.IsLocked)
}
fmt.Fprintf(w, "RequesterPays: %v\n", attrs.RequesterPays)
fmt.Fprintf(w, "VersioningEnabled: %v\n", attrs.VersioningEnabled)
if attrs.Logging != nil {
fmt.Fprintf(w, "LogBucket: %v\n", attrs.Logging.LogBucket)
fmt.Fprintf(w, "LogObjectPrefix: %v\n", attrs.Logging.LogObjectPrefix)
}
if attrs.CORS != nil {
fmt.Fprintln(w, "CORS:")
for _, v := range attrs.CORS {
fmt.Fprintf(w, "\tMaxAge: %v\n", v.MaxAge)
fmt.Fprintf(w, "\tMethods: %v\n", v.Methods)
fmt.Fprintf(w, "\tOrigins: %v\n", v.Origins)
fmt.Fprintf(w, "\tResponseHeaders: %v\n", v.ResponseHeaders)
}
}
if attrs.Labels != nil {
fmt.Fprintf(w, "\n\n\nLabels:")
for key, value := range attrs.Labels {
fmt.Fprintf(w, "\t%v = %v\n", key, value)
}
}
return attrs, nil
}
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.BucketInfo;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import java.util.Map;
public class GetBucketMetadata {
public static void getBucketMetadata(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();
// Select all fields. Fields can be selected individually e.g. Storage.BucketField.NAME
Bucket bucket =
storage.get(bucketName, Storage.BucketGetOption.fields(Storage.BucketField.values()));
// Print bucket metadata
System.out.println("BucketName: " + bucket.getName());
System.out.println("DefaultEventBasedHold: " + bucket.getDefaultEventBasedHold());
System.out.println("DefaultKmsKeyName: " + bucket.getDefaultKmsKeyName());
System.out.println("Id: " + bucket.getGeneratedId());
System.out.println("IndexPage: " + bucket.getIndexPage());
System.out.println("Location: " + bucket.getLocation());
System.out.println("LocationType: " + bucket.getLocationType());
System.out.println("Metageneration: " + bucket.getMetageneration());
System.out.println("NotFoundPage: " + bucket.getNotFoundPage());
System.out.println("RetentionEffectiveTime: " + bucket.getRetentionEffectiveTime());
System.out.println("RetentionPeriod: " + bucket.getRetentionPeriod());
System.out.println("RetentionPolicyIsLocked: " + bucket.retentionPolicyIsLocked());
System.out.println("RequesterPays: " + bucket.requesterPays());
System.out.println("SelfLink: " + bucket.getSelfLink());
System.out.println("StorageClass: " + bucket.getStorageClass().name());
System.out.println("TimeCreated: " + bucket.getCreateTime());
System.out.println("VersioningEnabled: " + bucket.versioningEnabled());
if (bucket.getLabels() != null) {
System.out.println("\n\n\nLabels:");
for (Map.Entry<String, String> label : bucket.getLabels().entrySet()) {
System.out.println(label.getKey() + "=" + label.getValue());
}
}
if (bucket.getLifecycleRules() != null) {
System.out.println("\n\n\nLifecycle Rules:");
for (BucketInfo.LifecycleRule rule : bucket.getLifecycleRules()) {
System.out.println(rule);
}
}
}
}
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');
// Creates a client
const storage = new Storage();
async function getBucketMetadata() {
/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
// The ID of your GCS bucket
// const bucketName = 'your-unique-bucket-name';
// Get Bucket Metadata
const [metadata] = await storage.bucket(bucketName).getMetadata();
for (const [key, value] of Object.entries(metadata)) {
console.log(`${key}: ${value}`);
}
}
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
use Google\Cloud\Storage\StorageClient;
/**
* Get bucket metadata.
*
* @param string $bucketName The name of your Cloud Storage bucket.
*/
function get_bucket_metadata($bucketName)
{
// $bucketName = 'my-bucket';
$storage = new StorageClient();
$bucket = $storage->bucket($bucketName);
$info = $bucket->info();
printf('Bucket Metadata: %s' . PHP_EOL, print_r($info));
}
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
from google.cloud import storage
def bucket_metadata(bucket_name):
"""Prints out a bucket's metadata."""
# bucket_name = 'your-bucket-name'
storage_client = storage.Client()
bucket = storage_client.get_bucket(bucket_name)
print(f"ID: {bucket.id}")
print(f"Name: {bucket.name}")
print(f"Storage Class: {bucket.storage_class}")
print(f"Location: {bucket.location}")
print(f"Location Type: {bucket.location_type}")
print(f"Cors: {bucket.cors}")
print(f"Default Event Based Hold: {bucket.default_event_based_hold}")
print(f"Default KMS Key Name: {bucket.default_kms_key_name}")
print(f"Metageneration: {bucket.metageneration}")
print(
f"Public Access Prevention: {bucket.iam_configuration.public_access_prevention}"
)
print(f"Retention Effective Time: {bucket.retention_policy_effective_time}")
print(f"Retention Period: {bucket.retention_period}")
print(f"Retention Policy Locked: {bucket.retention_policy_locked}")
print(f"Requester Pays: {bucket.requester_pays}")
print(f"Self Link: {bucket.self_link}")
print(f"Time Created: {bucket.time_created}")
print(f"Versioning Enabled: {bucket.versioning_enabled}")
print(f"Labels: {bucket.labels}")
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
def get_bucket_metadata 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
puts "ID: #{bucket.id}"
puts "Name: #{bucket.name}"
puts "Storage Class: #{bucket.storage_class}"
puts "Location: #{bucket.location}"
puts "Location Type: #{bucket.location_type}"
puts "Cors: #{bucket.cors}"
puts "Default Event Based Hold: #{bucket.default_event_based_hold?}"
puts "Default KMS Key Name: #{bucket.default_kms_key}"
puts "Logging Bucket: #{bucket.logging_bucket}"
puts "Logging Prefix: #{bucket.logging_prefix}"
puts "Metageneration: #{bucket.metageneration}"
puts "Retention Effective Time: #{bucket.retention_effective_at}"
puts "Retention Period: #{bucket.retention_period}"
puts "Retention Policy Locked: #{bucket.retention_policy_locked?}"
puts "Requester Pays: #{bucket.requester_pays}"
puts "Self Link: #{bucket.api_url}"
puts "Time Created: #{bucket.created_at}"
puts "Versioning Enabled: #{bucket.versioning?}"
puts "Index Page: #{bucket.website_main}"
puts "Not Found Page: #{bucket.website_404}"
puts "Labels:"
bucket.labels.each do |key, value|
puts " - #{key} = #{value}"
end
puts "Lifecycle Rules:"
bucket.lifecycle.each do |rule|
puts "#{rule.action} - #{rule.storage_class} - #{rule.age} - #{rule.matches_storage_class}"
end
end
A seguir
Para pesquisar e filtrar exemplos de código de outros produtos do Google Cloud, consulte o navegador de exemplos do Google Cloud.