

终止支持通知：2025 年 11 月 13 日，我 AWS 将停止对 AWS MediaStore Elemental 的支持。2025 年 11 月 13 日之后，您将无法再访问 MediaStore 控制台或 MediaStore 资源。有关更多信息，请访问此[博客文章](https://aws.amazon.com/blogs/media/support-for-aws-elemental-mediastore-ending-soon/)。

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

# 对象生命周期策略的组成
<a name="policies-object-lifecycle-components"></a>

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

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

## 对象生命周期策略中的规则
<a name="policies-object-lifecycle-components-rules"></a>

您可以创建三种类型的规则：
+ [瞬态数据](#policies-object-lifecycle-components-rules-seconds)
+ [删除对象](#policies-object-lifecycle-components-rules-days)
+ [生命周期转换](#policies-object-lifecycle-components-rules-lifecycle-transition)

### 瞬态数据
<a name="policies-object-lifecycle-components-rules-seconds"></a>

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

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

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

瞬态数据规则有三个部分：
+ `path`：始终设置为 `wildcard`。您可以使用此部分来定义您要删除哪些对象。您可以使用一个或多个通配符，以星号 (\$1) 表示。每个通配符表示 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 事件。

### 删除对象
<a name="policies-object-lifecycle-components-rules-days"></a>

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

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

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

删除对象规则有三个部分：
+ `path`：设置为 `prefix` 或 `wildcard`。您不能在同一规则中混用 `prefix` 和 `wildcard`。如果要同时使用两者，则必须为 `prefix` 创建一条规则，为 `wildcard` 单独创建一条规则，如上面的示例所示。
  + `prefix` – 如果要删除特定文件夹中的所有对象，则将路径设置为 `prefix`。如果该参数为空 (`"path": [ { "prefix": "" } ],`)，则目标是当前容器内的任何位置存储的所有对象。单个规则中最多可以包含 10 条 `prefix` 路径。
  + `wildcard` – 如果要基于文件名和/或文件类型删除特定对象，则将路径设置为 `wildcard`。您可以使用一个或多个通配符，以星号 (\$1) 表示。每个通配符表示 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 之后，即使该对象尚未删除，该账户也无需为其支付费用。

### 生命周期转换
<a name="policies-object-lifecycle-components-rules-lifecycle-transition"></a>

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

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

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

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

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

生命周期转换规则包含三个部分：
+ `path`：设置为 `prefix` 或 `wildcard`。您不能在同一规则中混用 `prefix` 和 `wildcard`。如果要同时使用两者，则必须为 `prefix` 创建一个规则，再为 `wildcard` 创建另一个规则。
  + `prefix` - 如果要将特定文件夹中的所有对象移动到 IA 存储类，则可以将 path 设置为 `prefix`。如果该参数为空 (`"path": [ { "prefix": "" } ],`)，则目标是当前容器内的任何位置保存的所有对象。单个规则中最多可以包含 10 条 `prefix` 路径。
  + `wildcard` – 如果要根据文件名和/或文件类型将特定对象移动到 IA 存储类，则可以将 path 设置为 `wildcard`。您可以使用一个或多个通配符，以星号 (\$1) 表示。每个通配符表示 0 个或多个字符的任意组合。例如，`"path": [ {"wildcard": "Football/*.ts"} ],` 适用于 `Football` 文件夹中与 `*.ts` 的模式匹配的所有文件（例如 filename.ts、filename1.ts 和 filename123456.ts）。单个规则中最多可以包含 10 条 `wildcard` 路径。
+ `days_since_create`：始终设置为 `"numeric": [">=" , 30]`。
+ `action`：始终设置为 `ARCHIVE`。

## 示例
<a name="policies-object-lifecycle-components-example"></a>

假设一个名为 `LiveEvents` 的容器有四个子文件夹：`Football`、`Baseball`、`Basketball` 和 `AwardsShow`。分配给 `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 MediaStore Elemental 删除存储`LiveEvents/Football`在文件夹和文件夹`LiveEvents/Baseball`中的存储时间超过 28 天的对象。
+ 第二个规则指示服务删除存储在 `LiveEvents/AwardsShow` 文件夹中达到或超过 15 天的对象。
+ 第三个规则指示服务删除存储在 `LiveEvents` 容器中任何地方超过 40 天的对象。这条规则应用于直接存储在 `LiveEvents` 容器中和存储在该容器四个子文件夹任何一个中的对象。
+ 第四个规则指示服务删除 `Football` 文件夹中与模式 `*.ts` 匹配的超过 20 天的对象。
+ 第五条规则指示服务在`Football`文件夹中与模式匹配的对象超过15秒`index*.m3u8`后将其删除。 MediaStore 在这些文件放入容器后 16 秒钟将其删除。
+ 第六条规则指示服务在 `Program` 文件夹中的对象达到 30 天后将其移动到 IA 存储类。

有关对象生命周期策略的更多示例，请参阅[示例对象生命周期策略](policies-object-lifecycle-examples.md)。