【问题标题】:Changing Storage class from Multi-Regional to Coldline in Google Cloud Platform在 Google Cloud Platform 中将存储类从 Multi-Regional 更改为 Coldline
【发布时间】:2019-07-20 01:13:16
【问题描述】:

我刚刚完成了 Google Cloud Platform 的 1 年免费试用期,现在我需要付费。

当我设置我的第一个项目时,看起来我将其设置为多区域。我只会在我家发生灾难性故障时使用谷歌云存储,我会丢失内部和外部硬盘驱动器上的数据(即火灾等)。我相信对于这种类型的备份,我只需要 Coldline 存储。我确实将我的项目更改为 Coldline,但它看起来只更改新数据,而不是原始存储数据,因为我仍然需要为多区域存储付费。

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

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

感谢您的帮助

【问题讨论】:

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


    【解决方案1】:

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

    获取 gsutil 版本:

    gsutil version
    

    更新包含 gsutil 的 Cloud SDK:

    窗户: 以管理员权限打开命令提示符

    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 天的文件移至冷线存储。

    政策(写入生命周期.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
    

    【讨论】:

    • 在解决了一些问题后,我完成了第 1 步。所以我的存储桶的默认存储类现在是冷线。我认为我不需要执行第 2 步,因为我希望我的整个存储桶都是冷线(但我不确定,因为我不知道对象是什么)。在第 3 步中,我被告知我的存储桶没有生命周期配置,所以我继续进行第 4 步。我是否按照您在不同行上使用所有这些括号等来输入策略?如果是这样,在我输入之后,我是否输入你在它之后显示的命令,gsutil生命周期设置生命周期.json gs:// mybucket???
    • 复制粘贴到文件中,不要手动输入json。 CLI 不关心 json 是否是一大行,但是如果您收到错误消息,如果 json 被格式化,则调试起来会容易得多。是的,使用我给您的命令行更改存储桶名称。对象是存储在存储桶中的文件。
    • 我很抱歉我对编程命令等一无所知。如果我将上述策略复制并粘贴到管理命令提示符中,我会收到关于无法识别命令的各种错误消息。您在上一篇文章中说过要粘贴到文件中。我不确定应该在哪里做。看起来我的存储桶上发生了对冷线存储的更改,所以我什至需要执行第 4 步吗?我从我对这个主题的原始阅读中认为,您可以选择其中一个(使用 gsutil 重写数据或使用生命周期管理)。谢谢你的帮助顺便说一句!!!
    • 正如我在回答中所展示的:POLICY (write to lifecycle.json):
    • 如果我输入:策略(写入生命周期.json):在管理提示中,我收到错误消息,所以我认为这不是我应该做的。抱歉,我不是程序员,我是兽医,所以这对我来说是全新的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 2022-06-11
    • 1970-01-01
    • 2019-08-11
    • 2021-05-05
    • 2016-08-25
    • 2019-10-12
    相关资源
    最近更新 更多