对象生命周期策略的组成 - AWS元素 MediaStore

终止支持通知:2025 年 11 月 13 日, AWS 将停止对 AWS Element MediaStore al 的支持。2025 年 11 月 13 日之后,您将无法再访问 MediaStore 控制台或 MediaStore 资源。如需更多信息,请访问此博客文章

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

对象生命周期策略的组成

对象生命周期策略用于管理对象应在 AWS Elemental MediaStore 容器中保留的时间。每个对象生命周期策略由一条或多条规则组成,规则指示对象的生命周期。一个规则可以应用到一个文件夹、多个文件夹或整个容器。

对于一个容器,您可以附加一个对象生命周期策略,而且每个对象生命周期策略可以包含最多 10 个规则。您不能将对象生命周期策略分配给单个对象。

对象生命周期策略中的规则

您可以创建三种类型的规则:

瞬态数据

瞬态数据规则将对象设置为在几秒钟内过期。此类规则仅适用于在策略生效后添加到容器中的对象。MediaStore 最长需要 20 分钟才能对容器应用新策略。

瞬态数据的规则示例如下所示:

{ "definition": { "path": [ {"wildcard": "Football/index*.m3u8"} ], "seconds_since_create": [ {"numeric": [">", 120]} ] }, "action": "EXPIRE" },

瞬态数据规则有三个部分:

  • path:始终设置为 wildcard。您可以使用此部分来定义您要删除哪些对象。您可以使用一个或多个通配符,以星号 (*) 表示。每个通配符表示 0 个或多个字符的任意组合。例如,"path": [ {"wildcard": "Football/index*.m3u8"} ], 适用于 Football 文件夹中与 index*.m3u8 的模式匹配的所有文件(例如 index.m3u8、index1.m3us8 和 index123456.m3u8)。单个规则中最多可以包含 10 条 路径。

  • seconds_since_create:始终设置为 numeric。可以指定 1-300 秒的值。也可以将运算符设置为大于 (>) 或大于等于 (>=)。

  • action:始终设置为 EXPIRE

对于瞬态数据规则(对象在几秒钟内过期),在对象过期和删除对象之间没有延迟。

注意

受瞬态数据规则约束的对象不包括在 list-items 响应中。此外,由于临时数据规则而过期的对象在过期时不会发出 CloudWatch 事件。

删除对象

删除对象规则将对象设置为在几天之内过期。此类规则适用于容器中的所有对象,即使它们在创建策略之前已添加到容器中也是如此。MediaStore 应用新策略最多需要 20 分钟,但从容器中清除对象可能需要长达 24 小时。

删除对象的两条规则示例如下所示:

{ "definition": { "path": [ { "prefix": "FolderName/" } ], "days_since_create": [ {"numeric": [">" , 5]} ] }, "action": "EXPIRE" }, { "definition": { "path": [ { "wildcard": "Football/*.ts" } ], "days_since_create": [ {"numeric": [">" , 5]} ] }, "action": "EXPIRE" }

删除对象规则有三个部分:

  • path:设置为 prefixwildcard。您不能在同一规则中混用 prefixwildcard。如果要同时使用两者,则必须为 prefix 创建一条规则,为 wildcard 单独创建一条规则,如上面的示例所示。

    • prefix – 如果要删除特定文件夹中的所有对象,则将路径设置为 prefix。如果该参数为空 ("path": [ { "prefix": "" } ],),则目标是当前容器内的任何位置存储的所有对象。单个规则中最多可以包含 10 条 prefix 路径。

    • wildcard – 如果要基于文件名和/或文件类型删除特定对象,则将路径设置为 wildcard。您可以使用一个或多个通配符,以星号 (*) 表示。每个通配符表示 0 个或多个字符的任意组合。例如,"path": [ {"wildcard": "Football/*.ts"} ], 适用于 Football 文件夹中与 *.ts 的模式匹配的所有文件(例如 filename.ts、filename1.ts 和 filename123456.ts)。单个规则中最多可以包含 10 条 wildcard 路径。

  • days_since_create:始终设置为 numeric。可以指定 1-36,500 天的值。也可以将运算符设置为大于 (>) 或大于等于 (>=)。

  • action:始终设置为 EXPIRE

对于删除对象规则(对象在几天之内过期),在对象过期和删除对象之间可能会略有滞后。但是,一旦对象过期,账单就会立即发生变化。例如,如果生命周期规则指定 10 days_since_create,则在对象超过 10 之后,即使该对象尚未删除,该账户也无需为其支付费用。

生命周期转换

生命周期转换规则会将对象设置为在达到一定期限(以天计算)后移动到不经常访问 (IA) 存储类中。存储在 IA 存储类中的对象与存储在标准存储类中的对象具有不同的存储和检索速率。有关更多信息,请参阅 MediaStore 定价

对象一旦移动到 IA 存储类中,就无法再移回标准存储类。

生命周期转换规则适用于容器中的所有对象,即使它们在创建策略之前已添加到容器中也是如此。MediaStore 应用新策略最多需要 20 分钟,但从容器中清除对象可能需要长达 24 小时。

下面为一个生命周期转换规则示例:

{ "definition": { "path": [ {"prefix": "AwardsShow/"} ], "days_since_create": [ {"numeric": [">=" , 30]} ] }, "action": "ARCHIVE" }

生命周期转换规则包含三个部分:

  • path:设置为 prefixwildcard。您不能在同一规则中混用 prefixwildcard。如果要同时使用两者,则必须为 prefix 创建一个规则,再为 wildcard 创建另一个规则。

    • prefix - 如果要将特定文件夹中的所有对象移动到 IA 存储类,则可以将 path 设置为 prefix。如果该参数为空 ("path": [ { "prefix": "" } ],),则目标是当前容器内的任何位置保存的所有对象。单个规则中最多可以包含 10 条 prefix 路径。

    • wildcard – 如果要根据文件名和/或文件类型将特定对象移动到 IA 存储类,则可以将 path 设置为 wildcard。您可以使用一个或多个通配符,以星号 (*) 表示。每个通配符表示 0 个或多个字符的任意组合。例如,"path": [ {"wildcard": "Football/*.ts"} ], 适用于 Football 文件夹中与 *.ts 的模式匹配的所有文件(例如 filename.ts、filename1.ts 和 filename123456.ts)。单个规则中最多可以包含 10 条 wildcard 路径。

  • days_since_create:始终设置为 "numeric": [">=" , 30]

  • action:始终设置为 ARCHIVE

示例

假设一个名为 LiveEvents 的容器有四个子文件夹:FootballBaseballBasketballAwardsShow。分配给 LiveEvents 文件夹的对象生命周期策略可能类似于如下内容:

{ "rules": [ { "definition": { "path": [ {"prefix": "Football/"}, {"prefix": "Baseball/"} ], "days_since_create": [ {"numeric": [">" , 28]} ] }, "action": "EXPIRE" }, { "definition": { "path": [ { "prefix": "AwardsShow/" } ], "days_since_create": [ {"numeric": [">=" , 15]} ] }, "action": "EXPIRE" }, { "definition": { "path": [ { "prefix": "" } ], "days_since_create": [ {"numeric": [">" , 40]} ] }, "action": "EXPIRE" }, { "definition": { "path": [ { "wildcard": "Football/*.ts" } ], "days_since_create": [ {"numeric": [">" , 20]} ] }, "action": "EXPIRE" }, { "definition": { "path": [ {"wildcard": "Football/index*.m3u8"} ], "seconds_since_create": [ {"numeric": [">" , 15]} ] }, "action": "EXPIRE" }, { "definition": { "path": [ {"prefix": "Program/"} ], "days_since_create": [ {"numeric": [">=" , 30]} ] }, "action": "ARCHIVE" } ] }

上述策略指定以下内容:

  • 第一个规则指示 AWS Elemental MediaStore 删除存储在 LiveEvents/FootballLiveEvents/Baseball文件夹中超过 28 天的对象。

  • 第二个规则指示服务删除存储在 LiveEvents/AwardsShow 文件夹中达到或超过 15 天的对象。

  • 第三个规则指示服务删除存储在 LiveEvents 容器中任何地方超过 40 天的对象。这条规则应用于直接存储在 LiveEvents 容器中和存储在该容器四个子文件夹任何一个中的对象。

  • 第四个规则指示服务删除 Football 文件夹中与模式 *.ts 匹配的超过 20 天的对象。

  • 第五个规则指示服务删除 Football 文件夹中与模式 index*.m3u8 匹配的超过 15 秒的对象。在这些文件放入容器后 16 秒,MediaStore 会将其删除。

  • 第六条规则指示服务在 Program 文件夹中的对象达到 30 天后将其移动到 IA 存储类。

有关对象生命周期策略的更多示例,请参阅示例对象生命周期策略