在Google云端存储中更改(现有)对象的存储类

时间:2016-10-27 05:49:33

标签: google-cloud-storage google-cloud-platform gcloud gsutil

美好的一天!

我最近了解到 Google云存储平台/服务上宣布的新存储层和降价。

所以我想将我的一个存储桶的默认存储类别从 Durable Reduced Availability 更改为 Coldline,,因为这适用于我和#的文件39;在那个存储桶中存档。

我收到了这个说明:

  

更改默认存储类仅影响您添加的对象   这个桶向前发展。它不会改变存储类   已经在你的桶中的对象。

有关如何更改存储桶中所有现有对象类的任何建议/提示(使用云控制台gsutil)?

欣赏它;感谢

干杯!

fynali

5 个答案:

答案 0 :(得分:11)

将对象同步移动到同一存储桶中的其他存储类的最简单方法是使用rewrite。例如,要使用gsutil执行此操作,您可以运行:

gsutil -m rewrite -s coldline gs://your-bucket/**

注意:确保gsutil是最新的(版本4.22及更高版本支持带有-s的{​​{1}}标记。)

或者,您可以使用Lifecycle Management功能的新rewrite操作异步(通常需要大约1天)修改对象的存储类(例如,使用SetStorageClass更改存储桶的默认存储类后,条件设置为一段时间。)

答案 1 :(得分:1)

您现在可以通过将存储桶对象移动到新存储桶来使用“数据传输”来更改存储类。

从“存储”左侧面板访问此内容。

enter image description here

答案 2 :(得分:0)

如果您无法访问gsutil控制台(例如在Google Cloud Function环境中),因为Cloud Functions服务器实例未安装gsutil。 Gsutil可在您的本地计算机上运行,​​因为您确实在本地计算机上进行了安装和配置。对于所有这些情况,建议您在python中评估update_storage_class()blob方法。当您检索单个Blob时,可以调用此方法(换句话说,它引用存储桶中的特定对象)。这里是一个例子:

from google.cloud import storage

storage_client = storage.Client()

blobs = storage_client.list_blobs(bucket_name)

for blob in blobs:
    print(blob.name)
    print(blob.storage_class)

all_classes = ['NEARLINE_STORAGE_CLASS', 'COLDLINE_STORAGE_CLASS', 'ARCHIVE_STORAGE_CLASS', 'STANDARD_STORAGE_CLASS', 'MULTI_REGIONAL_LEGACY_STORAGE_CLASS', 'REGIONAL_LEGACY_STORAGE_CLASS']

new_class = all_classes[my_index]
update_storage_class(new_class)

参考:

答案 3 :(得分:0)

要将存储类别从 NEARLINE 更改为 COLDLINE,请创建一个包含以下内容的 JSON 文件:

{
  "lifecycle": {
    "rule": [
      {
        "action": {
          "type": "SetStorageClass",
          "storageClass": "COLDLINE"
        },
        "condition": {
          "matchesStorageClass": [
            "NEARLINE"
          ]
        }
      }
    ]
  }
}

将其命名为 lifecycle.json 或其他名称,然后在您的 shell 中运行它:

$ gsutil lifecycle set lifecycle.json gs://my-cool-bucket

更改最多可能需要 24 小时才能完成。据我所知,此更改不会产生任何额外费用。

答案 4 :(得分:0)

我是这样做的:

gsutil -m rewrite -r -s <storage-class> gs://my-bucket-name/

(-r 表示递归,因为我希望存储桶中的所有对象都受到影响)。