列出 Cloud Storage 存储桶中的对象的归档世代。
深入探索
如需查看包含此代码示例的详细文档,请参阅以下内容:
代码示例
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
using Google.Cloud.Storage.V1;
using System;
using System.Collections.Generic;
public class ListFileArchivedGenerationSample
{
public IEnumerable<Google.Apis.Storage.v1.Data.Object> ListFileArchivedGeneration(string bucketName = "your-bucket-name")
{
var storage = StorageClient.Create();
var storageObjects = storage.ListObjects(bucketName, options: new ListObjectsOptions
{
Versions = true
});
foreach (var storageObject in storageObjects)
{
Console.WriteLine($"Filename: {storageObject.Name}, Generation: {storageObject.Generation}");
}
return storageObjects;
}
}
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
namespace gcs = ::google::cloud::storage;
[](gcs::Client client, std::string const& bucket_name) {
for (auto&& object_metadata :
client.ListObjects(bucket_name, gcs::Versions{true})) {
if (!object_metadata) {
throw std::runtime_error(object_metadata.status().message());
}
std::cout << "bucket_name=" << object_metadata->bucket()
<< ", object_name=" << object_metadata->name()
<< ", generation=" << object_metadata->generation() << "\n";
}
}
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
import (
"context"
"fmt"
"io"
"time"
"cloud.google.com/go/storage"
"google.golang.org/api/iterator"
)
// listFilesAllVersion lists both live and noncurrent versions of objects within specified bucket.
func listFilesAllVersion(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: %v", err)
}
defer client.Close()
ctx, cancel := context.WithTimeout(ctx, time.Second*10)
defer cancel()
it := client.Bucket(bucket).Objects(ctx, &storage.Query{
// Versions true to output all generations of objects
Versions: true,
})
for {
attrs, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
return fmt.Errorf("Bucket(%q).Objects(): %v", bucket, err)
}
fmt.Fprintln(w, attrs.Name, attrs.Generation, attrs.Metageneration)
}
return nil
}
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
import com.google.api.gax.paging.Page;
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
public class ListObjectsWithOldVersions {
public static void listObjectsWithOldVersions(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();
Bucket bucket = storage.get(bucketName);
Page<Blob> blobs = bucket.list(Storage.BlobListOption.versions(true));
for (Blob blob : blobs.iterateAll()) {
System.out.println(blob.getName() + "," + blob.getGeneration());
}
}
}
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 listFilesWithOldVersions() {
const [files] = await storage.bucket(bucketName).getFiles({
versions: true,
});
console.log('Files:');
files.forEach(file => {
console.log(file.name, file.generation);
});
}
listFilesWithOldVersions().catch(console.error);
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
use Google\Cloud\Storage\StorageClient;
/**
* List objects in a specified bucket with all archived generations.
*
* @param string $bucketName The name of your Cloud Storage bucket.
*/
function list_file_archived_generations($bucketName)
{
// $bucketName = 'my-bucket';
$storage = new StorageClient();
$bucket = $storage->bucket($bucketName);
$objects = $bucket->objects([
'versions' => true,
]);
foreach ($objects as $object) {
print($object->name() . ',' . $object->info()['generation'] . PHP_EOL);
}
}
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
from google.cloud import storage
def list_file_archived_generations(bucket_name):
"""Lists all the blobs in the bucket with generation."""
# bucket_name = "your-bucket-name"
storage_client = storage.Client()
blobs = storage_client.list_blobs(bucket_name, versions=True)
for blob in blobs:
print(f"{blob.name},{blob.generation}")
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
def list_file_archived_generations 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},#{file.generation}"
end
end
后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅 Google Cloud 示例浏览器。