举例说明如何获取存储分区的保留政策。
深入探索
如需查看包含此代码示例的详细文档,请参阅以下内容:
代码示例
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
using Google.Cloud.Storage.V1;
using System;
using static Google.Apis.Storage.v1.Data.Bucket;
public class GetRetentionPolicySample
{
public RetentionPolicyData GetRetentionPolicy(string bucketName = "your-unique-bucket-name")
{
var storage = StorageClient.Create();
var bucket = storage.GetBucket(bucketName);
if (bucket.RetentionPolicy != null)
{
Console.WriteLine("Retention policy:");
Console.WriteLine($"Period: {bucket.RetentionPolicy.RetentionPeriod}");
Console.WriteLine($"Effective time: {bucket.RetentionPolicy.EffectiveTime}");
bool isLocked = bucket.RetentionPolicy.IsLocked ?? false;
Console.WriteLine($"Policy locked: {isLocked}");
}
return bucket.RetentionPolicy;
}
}
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
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());
}
if (!bucket_metadata->has_retention_policy()) {
std::cout << "The bucket " << bucket_metadata->name()
<< " does not have a retention policy set.\n";
return;
}
std::cout << "The bucket " << bucket_metadata->name()
<< " retention policy is set to "
<< bucket_metadata->retention_policy() << "\n";
}
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
ctx := context.Background()
ctx, cancel := context.WithTimeout(ctx, time.Second*10)
defer cancel()
attrs, err := c.Bucket(bucketName).Attrs(ctx)
if err != nil {
return nil, err
}
if attrs.RetentionPolicy != nil {
log.Print("Retention Policy\n")
log.Printf("period: %v\n", attrs.RetentionPolicy.RetentionPeriod)
log.Printf("effective time: %v\n", attrs.RetentionPolicy.EffectiveTime)
log.Printf("policy locked: %v\n", attrs.RetentionPolicy.IsLocked)
}
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageException;
import com.google.cloud.storage.StorageOptions;
import java.util.Date;
public class GetRetentionPolicy {
public static void getRetentionPolicy(String projectId, String bucketName)
throws StorageException {
// 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();
Bucket bucket =
storage.get(
bucketName, Storage.BucketGetOption.fields(Storage.BucketField.RETENTION_POLICY));
System.out.println("Retention Policy for " + bucketName);
System.out.println("Retention Period: " + bucket.getRetentionPeriod());
if (bucket.retentionPolicyIsLocked() != null && bucket.retentionPolicyIsLocked()) {
System.out.println("Retention Policy is locked");
}
if (bucket.getRetentionEffectiveTime() != null) {
System.out.println("Effective Time: " + new Date(bucket.getRetentionEffectiveTime()));
}
}
}
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
/**
* 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 getRetentionPolicy() {
const [metadata] = await storage.bucket(bucketName).getMetadata();
if (metadata.retentionPolicy) {
const retentionPolicy = metadata.retentionPolicy;
console.log('A retention policy exists!');
console.log(`Period: ${retentionPolicy.retentionPeriod}`);
console.log(`Effective time: ${retentionPolicy.effectiveTime}`);
if (retentionPolicy.isLocked) {
console.log('Policy is locked');
} else {
console.log('Policy is unlocked');
}
}
}
getRetentionPolicy().catch(console.error);
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
use Google\Cloud\Storage\StorageClient;
/**
* Gets a bucket's retention policy.
*
* @param string $bucketName The name of your Cloud Storage bucket.
*/
function get_retention_policy($bucketName)
{
// $bucketName = 'my-bucket';
$storage = new StorageClient();
$bucket = $storage->bucket($bucketName);
$bucket->reload();
printf('Retention Policy for ' . $bucketName . PHP_EOL);
printf('Retention Period: ' . $bucket->info()['retentionPolicy']['retentionPeriod'] . PHP_EOL);
if (array_key_exists('isLocked', $bucket->info()['retentionPolicy']) &&
$bucket->info()['retentionPolicy']['isLocked']) {
printf('Retention Policy is locked' . PHP_EOL);
}
if ($bucket->info()['retentionPolicy']['effectiveTime']) {
printf('Effective Time: ' . $bucket->info()['retentionPolicy']['effectiveTime'] . PHP_EOL);
}
}
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
from google.cloud import storage
def get_retention_policy(bucket_name):
"""Gets the retention policy on a given bucket"""
# bucket_name = "my-bucket"
storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
bucket.reload()
print(f"Retention Policy for {bucket_name}")
print(f"Retention Period: {bucket.retention_period}")
if bucket.retention_policy_locked:
print("Retention Policy is locked")
if bucket.retention_policy_effective_time:
print(
f"Effective Time: {bucket.retention_policy_effective_time}"
)
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
def get_retention_policy 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 "Retention policy:"
puts "period: #{bucket.retention_period}"
puts "effective time: #{bucket.retention_effective_at}"
puts "policy locked: #{bucket.retention_policy_locked?}"
end
后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅 Google Cloud 示例浏览器。