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>