我正在一个项目中,需要使用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/

    10-15 10:13