2.4.10. S3 存储桶生命周期
您可以使用存储桶生命周期配置来管理对象,以便在其生命周期内有效存储它们。Ceph 对象网关中的 S3 API 支持 AWS 存储桶生命周期操作的子集:
-
expiration:这定义了存储桶内对象的寿命。取对象应实时或过期日期的天数,该日期指向 Ceph 对象网关将删除该对象。如果存储桶没有启用版本控制,Ceph 对象网关将永久删除对象。如果 bucket 启用版本控制,Ceph 对象网关为当前版本创建删除标记,然后删除当前版本。 -
NoncurrentVersionExpiration:这定义了存储桶中非当前对象版本的寿命。要使用此功能,存储桶必须启用版本控制。它取非当前对象应处于活动状态的天数,此时 Ceph 对象网关将删除非当前对象。 -
AbortIncompleteMultipartUpload:这定义了未完成的多部分上传在中止前的天数。
生命周期配置包含使用 <Rule> 元素的一个或多个规则。
示例
<LifecycleConfiguration>
<Rule>
<Prefix/>
<Status>Enabled</Status>
<Expiration>
<Days>10</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
生命周期规则可根据您在生命周期规则中指定的 < Filter> 元素,应用到存储桶中的所有对象子集。您可以使用以下方法指定过滤器:
- 密钥前缀
- 对象标签
- 密钥前缀和一个或多个对象标签
密钥前缀
您可以根据密钥名称前缀,将生命周期规则应用到对象的子集。例如,指定 <keypre/> 将应用到以 keypre/ 开头的对象:
<LifecycleConfiguration>
<Rule>
<Status>Enabled</Status>
<Filter>
<Prefix>keypre/</Prefix>
</Filter>
</Rule>
</LifecycleConfiguration>
您还可以将不同的生命周期规则应用到具有不同密钥前缀的对象:
<LifecycleConfiguration>
<Rule>
<Status>Enabled</Status>
<Filter>
<Prefix>keypre/</Prefix>
</Filter>
</Rule>
<Rule>
<Status>Enabled</Status>
<Filter>
<Prefix>mypre/</Prefix>
</Filter>
</Rule>
</LifecycleConfiguration>
对象标签
您可以使用 <Key> 和 <Value> 元素将生命周期规则应用到带有特定标签的对象:
<LifecycleConfiguration>
<Rule>
<Status>Enabled</Status>
<Filter>
<Tag>
<Key>key</Key>
<Value>value</Value>
</Tag>
</Filter>
</Rule>
</LifecycleConfiguration>
前缀和一个或多个标签
在生命周期规则中,您可以根据密钥前缀和一个或多个标签指定过滤器。它们必须嵌套在 < And> 元素中。过滤器只能有一个前缀,以及零个或多个标签:
<LifecycleConfiguration>
<Rule>
<Status>Enabled</Status>
<Filter>
<And>
<Prefix>key-prefix</Prefix>
<Tag>
<Key>key1</Key>
<Value>value1</Value>
</Tag>
<Tag>
<Key>key2</Key>
<Value>value2</Value>
</Tag>
...
</And>
</Filter>
</Rule>
</LifecycleConfiguration>