更新时间:2024-07-02 GMT+08:00
分享

删除对象

操作场景

为节省空间和成本,您可以通过OBS管理控制台、API、SDK、OBS Browser+、obsutil方式删除无用的文件或文件夹。

桶没有开启多版本控制功能时,已删除的对象不可恢复,请谨慎操作。

手动删除和自动删除

您可以随时手动删除对象,也可以通过生命周期管理功能,定期自动删除桶中对象或者一次性清空桶中所有对象。

对于并行文件系统目录,大数据场景下(目录层级深、目录下文件多)的删除,可能会因超时而删除失败,建议使用:

  1. hadoop 客户端(嵌套OBS客户端插件OBSA)删除目录:hadoop fs - rmr obs://{并行文件系统名}/{目录名}。
  2. 给目录配置生命周期规则,通过生命周期后台删除。

单个删除和批量删除

OBS支持单个和批量删除对象,各个使用方式的批量删除方法请参见批量删除对象

批量删除的性能和单个请求内的对象数负相关,对于QPS的计算,删除N个对象,算N次操作。如果删除对象数量大并且对象前缀使用了字典序,可能导致大量对象的请求访问集中于某个特定分区,造成访问热点。热点分区上的请求速率受限,访问时延上升。

为解决以上问题,您可以考虑减少单个批量删除请求的对象数量,增加并发请求数,并将对象名的顺序前缀改为随机性前缀。

多版本控制功能启用时的对象删除机制

桶的多版本控制功能启用时,删除的目标不同,OBS会采取不同的处理方式:

  • 删除文件或文件夹:文件或文件夹不会立即被彻底删除,而是保留在“已删除对象”列表中,同时会为文件打上删除标记。
    • 如果想要彻底删除,需要再到“已删除对象”列表进行删除。
    • 如果想要找回删除的文件,可以通过“取消删除”功能来找回。详情请参见取消删除对象
  • 删除文件的某个版本:该版本会被彻底删除且无法恢复。如果删除的是文件的最新版本,那么时间最近的那个历史版本将会变成最新版本。
在多版本控制功能启用的场景下,在“已删除对象”中的文件仍然会保留多版本,在对不同的版本进行删除时需要注意:
  • 如果删除的是带“删除标记”的版本,实际上是找回该文件,等同于“取消删除”文件,而非彻底删除。详情请参见取消删除对象
  • 如果删除的是不带“删除标记”的版本,则会彻底删除该历史版本,即使后续该文件找回后,也无法恢复这个被彻底删除的历史版本。

更多关于找回已删除对象的内容请参见多版本控制功能启用时的对象找回机制

背景知识

多版本控制功能启用时的对象删除机制

桶的多版本控制功能启用时,删除的目标不同,OBS会采取不同的处理方式:

  • 删除文件或文件夹:文件或文件夹不会立即被彻底删除,而是保留在“已删除对象”列表中,同时会为文件打上删除标记。在“已删除对象”列表中单击对象名,在对象的“版本”页签下可以看到最新的对象版本有删除标记。
    图1 删除文件或文件夹
    • 如果想要彻底删除,需要再到“已删除对象”列表进行删除。删除方法请参见本小节的使用OBS控制台
    • 如果想要找回删除的文件,可以通过“取消删除”功能来找回。找回方法请参见取消删除对象
  • 删除文件的某个版本:该版本会被彻底删除且无法恢复。如果删除的是文件的最新版本,那么时间最近的那个历史版本将会变成最新版本。
    图2 删除文件的某个版本

使用方式

OBS支持通过控制台、API、SDK、OBS Browser+、obsutil方式删除对象或文件夹。

使用OBS控制台

  1. OBS管理控制台左侧导航栏选择“桶列表”
  2. 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
  3. 选中待删除的文件或文件夹,并单击右侧的“更多 > 删除”。

    也可以选中多个文件或文件夹,单击文件列表上方的“删除”进行批量删除。

    图3 删除文件或文件夹

  4. 单击“确定”,确认删除文件或文件夹。

    图4 删除对象

    如果您的删除对象所在的OBS桶启用了多版本控制功能,那么删除的对象不会被立即删除,而是保留在“已删除对象”列表中,该对象的历史版本仍然会被保存下来且会占用存储空间,因此OBS仍然会对所有版本收取存储费用。如果您不再需要该对象,为避免删除后持续计费,请再按照以下步骤进行彻底删除。

  5. 对于启用了多版本控制的OBS桶,想要彻底删除文件或文件夹,需要再到“已删除对象”列表进行删除。

    当桶开启了WORM功能,则“已删除对象”列表不支持对对象进行彻底删除操作。如果需要彻底删除该对象,请进入对象详情删除,具体操作请参见相关操作或者配置对象锁定(WORM)防止对象被更改或删除

    当桶开启了WORM功能,则“已删除对象”列表不支持对文件夹进行彻底删除操作。如果需要彻底删除文件夹,仅支持配置生命周期规则进行过期删除。

    1. 单击“已删除对象”。
    2. 在待删除的文件或文件夹所在行的操作列,单击“彻底删除”。

      也可以选中多个文件或文件夹,单击文件列表上方的“彻底删除”进行批量删除。

      图5 彻底删除文件或文件夹

相关操作

在多版本控制功能启用的场景下,在“已删除对象”中的文件仍然会保留多版本,在对不同的版本进行删除时需要注意:

图6 “已删除对象”中文件的版本列表

  • 如果删除的是带“删除标记”的版本,实际上是找回该文件,等同于“取消删除”文件,而非彻底删除。相关方法请参见取消删除对象的相关操作。
  • 如果删除的是不带“删除标记”的版本,则会彻底删除该历史版本,即使后续该文件找回后,也无法恢复这个被彻底删除的历史版本。
分享:

    相关文档

    相关产品