我目前正在分析S3对象锁定功能,AWS指定了以下内容,
S3对象锁用于防止对象在固定的时间内或无限期地被删除或覆盖
但是AWS还指定用户启用版本控制以使用对象锁定。
如果启用了版本控制,则默认情况下将无法覆盖对象,因为它每次都会创建一个新版本。那么,S3中的对象锁定如何防止对象被覆盖?我在这里想念东西吗?
答案 0 :(得分:2)
来自Locking Objects Using Amazon S3 Object Lock - Amazon Simple Storage Service:
Amazon S3对象锁仅在版本化的存储桶中起作用,并且保留期限和合法保留适用于各个对象版本。锁定对象版本时,Amazon S3将锁定信息存储在该对象版本的元数据中。对对象设置保留期限或合法保留权仅保护请求中指定的版本。它不会阻止创建对象的新版本。如果将对象放入与现有受保护对象具有相同键名的存储桶中,Amazon S3 会创建该对象的新版本,并根据请求将其存储在存储桶中并报告请求如成功完成。对象的现有受保护版本会根据其保留配置保持锁定状态。
因此,对象锁定不会阻止对象被覆盖或创建新版本。只有对象的特定版本被锁定,无法删除。允许其他操作。
例如,我创建了一个对象,并用Legal Hold将其锁定。然后,我重命名该对象。这导致添加了 Delete Marker ,并使用更改后的名称创建了一个新对象。