管理删除标记
配置生命周期以自动清理过期的删除标记
过期的对象删除标记是指,删除所有对象版本而只保留一个删除标记。如果生命周期配置设置为删除当前版本,或显式设置了 ExpiredObjectDeleteMarker
操作,则 Amazon S3 会删除过期对象的删除标记。有关示例,请参阅示例 7:移除过期对象删除标记。
删除删除标记以使旧版本变为当前版本
当您删除启用了版本控制的存储桶中的某个对象时,所有版本都将保留在存储桶中并且 Amazon S3 将为该对象创建一个删除标记。要取消删除该对象,您必须删除此删除标记。有关版本控制和删除标记的更多信息,请参阅在 S3 存储桶中使用版本控制。
要永久删除“删除标记”,必须在 DeleteObject versionId
请求中包含其版本 ID。下图显示了 DeleteObject versionId
请求如何永久删除“删除标记”。
![图中显示了使用其版本 ID 的删除标记删除。](images/versioning_DELETE_deleteMarkerVersioned.png)
去除删除标记的效果是:简单的 GET
请求现在将检索对象的当前版本 ID(121212)。
注意
如果在当前版本是一个删除标记(未指定删除标记的版本 ID)的情况下使用 DeleteObject
请求,Amazon S3 将不会删除该删除标记,而是对另一个删除标记执行 PUTs
请求。
要删除具有 NULL
版本 ID 的删除标记,必须在 DeleteObject
请求中将 NULL
作为版本 ID 传递。下图显示了在没有版本 ID(当前版本是一个删除标记)的情况下如何发出简单的 DeleteObject
请求,未删除任何内容,而是再添加一个具有唯一版本 ID (7498372) 的删除标记。
![图中显示了使用 NULL 版本 ID 的删除标记删除。](images/versioning_DELETE_deleteMarker.png)
按照以下步骤,从 S3 存储桶中恢复文件夹之外的已删除对象,包括这些文件夹中的对象。
-
登录到 AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在存储桶列表中,请选择您想要的存储桶的名称。
-
要查看存储桶中对象的版本列表,请选择列出版本开关。您将能够看到已删除对象的删除标记。
-
要取消删除对象,您必须删除掉删除标记。选中要恢复的对象的删除标记旁边的复选框,然后选择 Delete (删除)。
-
在 Delete objects (删除对象) 页面上确认删除。
-
对于 Permanently delete objects?(永久删除对象?),输入
permanently delete
。 -
请选择 Delete objects(删除对象)。
-
注意
您无法使用 Amazon S3 控制台取消删除文件夹。您必须使用 AWS CLI 或 SDK。例如,请参阅 AWS 知识中心中的如何检索启用版本控制的存储桶中已被删除的 Amazon S3 对象?
永久删除“删除标记”的步骤
-
将
versionId
设置为要删除的删除标记的版本 ID。 -
发送
DELETE Object versionId
请求。
例 — 删除“删除标记”
以下示例删除用于 photo.gif
版本 4857693 的删除标记。
DELETE /photo.gif?versionId=4857693 HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
删除“删除标记”时,Amazon S3 将在响应中包含以下内容:
204 NoContent x-amz-version-id:
versionID
x-amz-delete-marker: true
有关使用其他 AWS SDK 的信息,请参阅 AWS 开发人员中心