

# S3 生命周期如何与其它存储桶配置进行交互
<a name="lifecycle-and-other-bucket-config"></a>

除了 S3 生命周期配置之外，您还可以将其他配置与存储桶关联。本部分解释了 S3 生命周期配置如何与其他存储桶配置相关。

## S3 生命周期和 S3 版本控制
<a name="lifecycle-versioning-support-intro"></a>

您可以向不受版本控制的存储桶和启用了版本控制的存储桶添加 S3 生命周期配置。有关更多信息，请参阅 [使用 S3 版本控制保留对象的多个版本](Versioning.md)。

启用了版本控制的存储桶会维护一个当前对象版本，以及零个或零个以上非当前对象版本。可以为当前和非当前对象版本定义单独的生命周期规则。

有关更多信息，请参阅 [生命周期配置元素](intro-lifecycle-rules.md)。

**重要**  
当您在 S3 生命周期配置中有多个规则时，对象可能变得符合条件可在同一天执行多个 S3 生命周期操作。在这种情况下，Amazon S3 遵循以下一般规则：  
永久删除优先于转换。
转换优先于[删除标记](DeleteMarker.md)的创建。
当对象有资格进行 S3 Glacier Flexible Retrieval 和 S3 Standard-IA（或 S3 One Zone-IA）转换时，Amazon S3 将选择 S3 Glacier Flexible Retrieval 转换。
 有关示例，请参阅 [重叠的筛选条件和冲突的生命周期操作的示例](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5)。

## S3 生命周期
<a name="lifecycle-and-replication"></a>

当您在存储桶上启用了 S3 生命周期时，S3 生命周期会阻止对具有 `PENDING` 或 `FAILED` 复制状态的对象执行到期和转换操作。这可确保在对象成功复制到其目标存储桶之前，生命周期不会对这些对象执行操作。

对象会因缺少复制角色权限、Amazon Key Management Service（Amazon KMS）权限或存储桶权限等问题而转换为 `FAILED` 复制状态。有关更多信息，请参阅 [对复制进行问题排查](replication-troubleshoot.md)。

在复制问题得到解决之前，复制状态为 `FAILED` 的对象将在其生命周期到期或转换资格日期过后继续产生存储成本。一旦修复了底层复制配置或 IAM 权限，将自动复制新对象。但是，已经具有 `FAILED` 复制状态的对象不会自动重试，您必须使用 S3 批量复制来复制它们，或者如果不再需要，则使用 S3 批量操作以及 Amazon Lambda 将其删除。对象成功复制（或被删除）后，生命周期将根据您配置的规则恢复对其进行处理。要识别具有 `FAILED` 复制状态的对象，您可以使用 Amazon CloudWatch 指标 (`OperationFailedReplication`) 在存储桶级别监控故障计数和趋势，或者使用 Amazon S3 清单报告、Amazon S3 API（`HeadObject` 或 `GetObject`）或 Amazon S3 事件通知来获取对象级别详细信息。

## 启用了 MFA 的存储桶上的 S3 生命周期配置
<a name="lifecycle-general-considerations-mfa-enabled-bucket"></a>

为删除 MFA 而配置的多重身份验证存储桶上不支持 S3 生命周期配置。有关更多信息，请参阅 [配置 MFA 删除](MultiFactorAuthenticationDelete.md)。

## S3 生命周期和日志记录
<a name="lifecycle-general-considerations-logging"></a>

Amazon CloudTrail 对象级别日志记录不捕获 Amazon S3 生命周期操作。CloudTrail 捕获向外部 Amazon S3 端点发出的 API 请求，而 S3 生命周期操作通过使用内部 Amazon S3 端点来执行。

可以在 S3 存储桶中启用 Amazon S3 服务器访问日志，来捕获与 S3 生命周期相关的操作，例如，对象转换为另一个存储类以及对象到期（这会导致永久删除或逻辑删除）。有关更多信息，请参阅 [使用服务器访问日志记录来记录请求](ServerLogs.md)。

如果您在存储桶上启用了日志记录，Amazon S3 服务器访问日志会报告以下操作的结果。


| 操作日志 | 说明 | 
| --- | --- | 
| `S3.EXPIRE.OBJECT` | Amazon S3 由于生命周期 `Expiration` 操作而永久删除对象。 | 
| `S3.CREATE.DELETEMARKER` | Amazon S3 通过在启用版本控制的存储桶中添加删除标记，来在逻辑上删除当前版本。 | 
| `S3.TRANSITION_SIA.OBJECT` | Amazon S3 将对象转换为 S3 Standard-IA 存储类。 | 
| `S3.TRANSITION_ZIA.OBJECT` | Amazon S3 将对象转换为 S3 One Zone-IA 存储类。 | 
| `S3.TRANSITION_INT.OBJECT` | Amazon S3 将对象转换为 S3 Intelligent-Tiering 存储类。 | 
| `S3.TRANSITION_GIR.OBJECT` | Amazon S3 启动将对象转换为 S3 Glacier Instant Retrieval 存储类的过程。 | 
| `S3.TRANSITION.OBJECT` | Amazon S3 启动将对象转换为 S3 Glacier Flexible Retrieval 存储类的过程。 | 
| `S3.TRANSITION_GDA.OBJECT` | Amazon S3 启动将对象转换为 S3 Glacier Deep Archive 存储类的过程。 | 
| `S3.DELETE.UPLOAD` | Amazon S3 中止未完成的分段上传。 | 

**注意**  
Amazon S3 服务器访问日志记录会尽最大努力记录信息，但不能用于完整记录所有 Amazon S3 请求。