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