Google cloud platform 在GCP中编写对象生命周期规则时理解IsLive和存储类

Google cloud platform 在GCP中编写对象生命周期规则时理解IsLive和存储类,google-cloud-platform,google-cloud-storage,versioning,Google Cloud Platform,Google Cloud Storage,Versioning,我们需要在GCP云存储桶中启用以下对象生命周期规则 如果非当前对象版本在100天内未被访问,且其当前存储类别为存储、多区域和持久可用性降低,请将该对象移动到近线存储 如果对象版本在100天内未被访问,且其当前存储类别为Nearline,请将其移动到Coldline存储类别 如果在100天内未从Coldline存储访问对象,请从Coldline存储中删除 保留2个文件的非当前版本 为了实现上述规则,对bucket应用了以下规则 { "lifecycle": {

我们需要在
GCP云存储桶中启用以下
对象生命周期规则

  • 如果非当前对象版本在100天内未被访问,且其当前存储类别为
    存储、多区域和持久可用性降低
    ,请将该对象移动到
    近线
    存储

  • 如果对象版本在100天内未被访问,且其当前存储类别为
    Nearline
    ,请将其移动到
    Coldline
    存储类别

  • 如果在100天内未从
    Coldline
    存储访问对象,请从
    Coldline
    存储中删除

  • 保留2个文件的非当前版本

  • 为了实现上述规则,对bucket应用了以下规则

    {
     "lifecycle": {
       "rule": [
       {
        "action": {
        "type": "SetStorageClass",
        "storageClass": "NEARLINE"
     },
     "condition": {
        "age": 100,
        "isLive": false,
        "matchesStorageClass": ["REGIONAL", "STANDARD", "DURABLE_REDUCED_AVAILABILITY"]
        }
       },
      {
        "action": {
        "type": "SetStorageClass",
        "storageClass": "COLDLINE"
        },
         "condition": {
           "age": 100,
           "matchesStorageClass": ["NEARLINE"]
          }
      },
     {
       "action": { "type": "Delete"},
        "condition": {
         "age": 100,
         "matchesStorageClass": ["COLDLINE"]
        }
       },
      {
        "action": { "type": "Delete"},
         "condition": {
         "numNewerVersions": 2
         }
        }
       ]
       }
       }
    
    需要澄清以下内容

  • 这表明规则得到了成功的应用,但它将切实可行。由于我们正在将非当前版本从近线移动到冷线,这些版本在100天内无法访问,因此我需要在规则2中添加“isLive”:false。规则3也需要它

    {
     "action": {
     "type": "SetStorageClass",
     "storageClass": "COLDLINE"
     },
      "condition": {
        "age": 100,
        "isLive": false
        "matchesStorageClass": ["NEARLINE"]
       }
    
    },

  • 另外,由于我们正在考虑超过100天的访问时间,从标准存储类直接转到COLDLINE是否有意义


  • 有什么建议吗?

    您的规则不正确

    首先,年龄是最重要的

    年龄从对象的创建时间开始计算

    因此,您的条件“如果在过去100天内未访问”是不可能的。正确的表达方式是“100天后,做…”

    因此,您的归档策略是不正确的。使用相同的年龄(对象创建后100天)来

    • 到近线
    • 去Coldline
    • 从冷线删除
    在同样的年龄条件下


    回答你的问题

    不,你不需要提到<代码> iSave:false 如果你考虑到(只有肯定的)只有非当前版本在 NealLe> 类 是的,你可以从标准跳到冷线,特别是对于非当前版本,如果你把它们看作是从来没有(或很少使用),然后在100天后删除它们。
    谢谢因此,这些规则是基于“年龄”而不是“权限”。很少查询。将非当前文件从标准移动到近线或冷线后,创建日期似乎没有修改,因此前三个规则中的“年龄”必须分别为“100”、“200”和“300”。如果我错了,请纠正我。这是正确的。更改存储类时,更新的是blob元数据,而不是blob本身,因此创建日期不会更改。谢谢。如果规则2和规则3中有生存的机会,那么添加
    isLive:false
    是否安全!版本将与非当前版本一起存在于从存储类移出的NEARLINE和COLDLINE存储中?是的,这样会更安全!
    {
      "action": { "type": "Delete"},
      "condition": {
      "age": 100,
      "isLive": false
      "matchesStorageClass": ["COLDLINE"]
     }
    },