我正在一个电子商务网站上工作。
我将产品照片存储在 S3 存储桶中。一旦产品被删除,我也将从 S3 存储桶中删除照片。
我有S3 存储桶版本控制启用。我不太清楚版本控制是如何运作的?
以下是我的假设:
- 如果修改了产品照片,旧照片将保留在旧版本中(因此旧照片永远不会被删除)
- 如果照片被删除,AWS 仍会保留已删除的照片,但会将其标记为已删除
上述假设正确吗?
现在我想创建一个生命周期规则,将旧照片(已删除或已修改的旧版本的照片)移动到更便宜的存储空间。
从 S3 控制台中,我选择“管理”>“创建生命周期规则”。我可以看到以下选项:
- 在存储类别之间移动对象的当前版本
- 在存储类别之间移动对象的非当前版本
- 使对象的当前版本过期
- 永久删除对象的非当前版本
- 删除过期的对象删除标记或不完整的分段上传
我不清楚非当前版本是什么意思?
删除的照片是不是非当前版本?如果产品照片长时间(比如 1 年)未被修改或删除,那么它是否属于当前版本?它是否会因为在存储桶中放置时间过长而变成非当前的?
我认为我想要的选项是这样的:
30 天后,上述规则是否会将已删除和修改的照片移动到更便宜的存储空间?
答案1
您对版本控制的工作方式以及生命周期规则的作用的理解是正确的。
您应该考虑使用 Glacier 即时检索类来节省更多钱,或者如果您可以接受六个月的最短存储期限,则可以使用 Glacier Deep Archive。
请注意,在存储类别之间转换对象会产生少量费用,因此在某些情况下(例如 CloudTrail 日志)这是不值得的。图像应该是值得的。文档很好地涵盖了这一点。