如何创建S3生命周期策略,将所有内容移动到智能分层,并在X天的窗口内保持单个以前的版本



我正试图找出我的用例需要的确切的S3桶生命周期规则。我认为我是对的,但是我的测试没有定论——从AWS的文档来看,在规则应该应用的时间和实际应用的时间之间似乎存在未定义的滞后。它们所保证的只是账单将反映定义的规则。我还发现他们文档和S3 UI中的措辞令人困惑和模棱两可。

我想要的配置是:

  • 所有文件和版本将被放置在智能分级尽快
  • 除了当前版本,保持一个以前的版本
  • …但90天后删除旧版本

我通过ruby SDK设置策略如下:

s3.put_bucket_lifecycle_configuration(
bucket: 'my-awesome-bucket',
lifecycle_configuration: {
rules: [
{
id: 'my-awesome-policy',
prefix: '',
status: 'Enabled',
transitions: [
{
storage_class: 'INTELLIGENT_TIERING',
days: 0
}
],
noncurrent_version_transitions: [
{
storage_class: 'INTELLIGENT_TIERING',
noncurrent_days: 0
}
],
noncurrent_version_expiration: {
noncurrent_days: 90
} 
} 
] 
}
)

正确吗?我知道还有类似的问题,但近年来这里的选项发生了微妙的变化,我想绝对确定我的答案是正确的。

在设计s3生命周期策略时,您必须记住以下几点:

  • 从S3标准或S3标准- ia过渡到S3标准- ia或S3 One Zone-IA的最短天数

这意味着在您可以移动任何对象之前,必须将它们存储在S3标准存储类中至少30天。

  • 0天规则并没有你想象的那么快。

此规则意味着对象在创建最小存储时间(参见上一点)之后的午夜UTC有资格进行转换。

  • S3生命周期配置支持任何对象保持1到100个版本。

支持版本的bucket中每个对象有一个当前版本和零个或多个非当前版本。因此,在您的情况下,您将使用这样的内容:

<LifecycleConfiguration>
<Rule>
...
<NoncurrentVersionExpiration>     
<NewerNoncurrentVersions>1</NewerNoncurrentVersions>
<NoncurrentDays>90</NoncurrentDays>    
</NoncurrentVersionExpiration>
</Rule>
</LifecycleConfiguration>

希望这能帮助您理解s3生命周期策略规则,并在考虑约束条件的情况下验证您的策略规则。

相关内容

  • 没有找到相关文章

最新更新