在Google Cloud Platform中将存储类别从多区域更改为Coldline

时间:2019-02-26 13:17:08

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

我刚刚在Google Cloud Platform上完成了为期一年的免费试用,现在正在向我收费。

当我设置第一个项目时,好像将其设置为“多区域”一样。仅当我的家发生灾难性故障时,我才会使用Google Cloud Storage,因为我的内部和外部硬盘驱动器上的数据都丢失了(例如,火灾等)。我相信对于这种备份,我只需要Coldline存储。我确实将项目更改为Coldline,但看起来它仅更改了新数据,而不更改了原始存储的数据,因为我仍然需要为多区域存储付费。

据我了解,我必须通过使用"gsutil rewrite -s [STORAGE_CLASS] gs://[PATH_TO_OBJECT]"覆盖数据或通过对象生活方式管理来更改对象存储类。我也不知道该怎么做,所以我需要帮助(我什至不确定在哪里键入这些命令或使用哪种方法(我不是程序员!)。

我还在另一篇文章中看到我的gsutil命令需要更新到4.22或更高版本。我该如何检查?我还在这篇文章中看到[PATH_TO_OBJECT]是“我的存储桶”。我看到一个项目名称,项目ID和项目编号。该字段中的哪个(如果有的话)用于“我的存储桶”?

谢谢您的帮助

1 个答案:

答案 0 :(得分:2)

  

我还在另一篇文章中看到我的gsutil命令需要最新   4.22或更高。我该如何检查?

获取gsutil版本:

gsutil version

更新包含gsutil的Cloud SDK:

Windows: 打开具有管理员权限的命令提示符

gcloud components update

Linux:

gcloud components update
  

我看到一个项目名称,项目ID和项目编号。这些之中的哪一个   (如果有)用于该字段中的“我的存储桶”。

使用PROJECT_ID。获取您有权访问的项目的列表。该命令将列出每个项目。

gcloud projects list

要查看哪个是您的默认项目:

gcloud config list project

如果默认项目为空白或错误​​的项目,请使用以下命令。

要设置默认项目,请执行以下操作:

gcloud config set project [PROJECT_ID]
  

据我了解,我必须更改对象存储类   要么我覆盖数据

假设您的存储桶名称为mybucket

步骤1:更改存储桶的默认存储类:

gsutil defstorageclass set coldline gs://mybucket

步骤2:手动更改每个对象的存储类。如果您只想选择几个文件,则此选项。

gsutil rewrite -s coldline gs://mybucket/objectname

步骤3:验证现有的生命周期策略。如果存在现有策略,请相应地更改步骤4。

gsutil lifecycle get gs://mybucket

步骤4:更改存储桶的生命周期。此政策会将所有7天之前的文件移至冷线存储中。

POLICY(写入lifecycle.json):

{
    "lifecycle": {
        "rule": [
        {
            "action": {
                "type": "SetStorageClass",
                "storageClass": "COLDLINE"
            },
            "condition": {
                "age": 7,
                "matchesStorageClass": [
                    "MULTI_REGIONAL",
                    "STANDARD",
                    "DURABLE_REDUCED_AVAILABILITY"
                ]
            }
        }
        ]
    }
}

命令:

gsutil lifecycle set lifecycle.json gs://mybucket