我正在一个项目中,需要使用Golang在Google Cloud Storage上启用存储桶版本控制。更具体 :
注意:我已经用Google搜索并浏览了Google Cloud Platform的文档,并发现仅Java版本控制的代码示例。甚至我都浏览了包“cloud.google.com/go/storage”以了解代码,但没有帮助。
我在代码中使用下面的库和函数来更新存储桶:
import "cloud.google.com/go/storage"
func configureStorage(bucketID string) (*storage.BucketHandle, error) {
ctx := context.Background()
client, err := storage.NewClient(ctx)
if err != nil {
log.Printf("An error happened: %v", err)
return nil, err
}
return client.Bucket(bucketID), nil
}
func saveFileToStorage(bucketID string, fileName string, contentType string, file multipart.File) {
StorageBucket, err := configureStorage(bucketID)
if err != nil {
log.Fatal(err)
}
if StorageBucket == nil {
log.Printf("Storage Bucket is nil")
return
}
ctx := context.Background()
wr := StorageBucket.Object(fileName).NewWriter(ctx)
wr.ACL = []storage.ACLRule{{Entity: storage.AllUsers, Role: storage.RoleReader}}
wr.ContentType = contentType
// Entries are immutable, be aggressive about caching (1 day).
wr.CacheControl = "public, max-age=86400"
if _, err := io.Copy(wr, file); err != nil {
log.Fatal(err)
}
if err := wr.Close(); err != nil {
log.Fatal(err)
}
}
最佳答案
您可以尝试通过GET告诉它是否启用了版本控制。
gsutil versioning get gs://bucket_name
可以尝试使用此SET启用或禁用存储桶的版本控制。
gsutil versioning set on gs://bucket_name
关于go - 如何使用Golang在Google Cloud Storage存储桶上启用存储桶版本控制?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39695802/