在 GCP 中编写对象生命周期规则时了解 IsLive 和存储 Class

Understanding IsLive and Storage Class while writing Object Lifecycle rules in GCP

我们需要在 GCP Cloud Storage bucket

中启用以下 Object Lifecycle rules
  1. 如果非当前对象版本 100 天未访问且其当前存储class 是 STORAGE, MULTI_REGIONAL and DURABLE_REDUCED_AVAILABILITY 之一,将该对象移动到 Nearline 存储

  2. 如果对象版本 100 天未访问且其当前存储 class 为 Nearline ,则将其移至 Coldline 存储 Class

  3. 如果 100 天未从 Coldline 存储中访问对象,则从 Coldline 存储中删除。

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

为实施上述规则,将以下规则应用于存储桶

{
 "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
     }
    }
   ]
   }
   }

下面需要说明

  1. 这表明规则已成功应用,但它是否实际起作用。由于我们正在将非当前版本从 NEARLINE 移动到 COLDLINE 100 天未访问,我是否需要在规则中添加 "isLive": false 2.我们也需要规则 3 吗?

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

    },

    {
      "action": { "type": "Delete"},
      "condition": {
      "age": 100,
      "isLive": false
      "matchesStorageClass": ["COLDLINE"]
     }
    },
    
  2. STANDARD 存储 class 直接移动到 COLDLINE 是否有意义,因为我们正在考虑超过 100 天的访问权限

有什么建议吗?

你的规则不正确。

首先,agenumber of days after the creation

Age is measured from the object's creation time

因此,您的条件“如果最近 100 天未访问过”是不可能的。正确的表达方式是“创建后 100 天,做...”

由此可见,您的归档策略不正确。您使用相同的年龄(对象创建后 100 天)到

  • 转到近线
  • 转到 Coldline
  • 从冷行中删除

年龄相同!!


回答您的问题

  1. 不,如果您认为(并且您确定)只有 non-current 版本在 nearline class[ 中,则无需提及 isLive: false =35=]
  2. 是的,您可以从标准版跳转到 Coldline,尤其是 non-current 版本,如果您认为它们从未(或很少)使用过,然后在 100 天后删除它们。