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

删除OBS桶中的对象

操作场景

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

本小节主要介绍如何手动删除文件或文件夹。手动和自动删除对比参见表1

表1 删除方式

场景

删除规则

规则说明

未开启多版本控制功能

单个删除

如果需要对少量或者无规律的文件进行删除时,可以选择具体某个文件,然后进行删除操作。

批量删除

如果需要删除桶中大量文件,或者删除一些周期性的文件,可以通过勾选多个文件,以批量方式删除文件。还可以通过生命周期功能,定期自动删除桶中对象,提高删除效率。了解如何结合生命周期删除对象,请参见结合生命周期

已开启/暂停多版本控制功能

单个删除

如果需要对少量或者无规律的文件进行删除时,可以选择手动方式。

批量删除

如果需要删除桶中大量文件,或者删除一些周期性的文件,可以通过勾选多个文件,以批量方式删除文件。还可以通过生命周期功能,定期自动删除桶中对象,提高删除效率。了解如何结合生命周期删除对象,请参见结合生命周期

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

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

注意事项

对于重要文件可新增数据备份,以防止误删除。相关操作可参考复制对象

权限控制

只有对象拥有者和被授予obs:object:DeleteObject(未开启多版本)、obs:object:DeleteObjectVersion(开启或暂停多版本)权限的用户才能删除对象。您可以使用IAM或桶策略进行授权,授权操作请参见创建IAM自定义策略自定义创建桶策略

如果您在 IAM 用户或角色策略中拥有删除对象的权限或授权,但是删除对象失败,可能是SCP策略桶策略中对于 obs:object:DeleteObject(未开启多版本)、obs:object:DeleteObjectVersion(开启或暂停多版本)包含了 Deny 语句。请先放开该权限,然后再进行删除对象操作。

与其他功能结合使用

OBS支持多版本控制功能,通过多版本控制,用户可以在一个桶中保留多个版本的对象,还可以更方便地检索和还原各个版本,在意外操作或应用程序故障时快速恢复数据。删除对象有丢失数据的风险,需要谨慎操作,而利用多版本控制功能可以降低该风险。了解更多多版本相关信息请参见多版本控制

场景

删除对象的当前版本

删除对象的历史版本

未开启多版本控制功能

OBS将彻底删除这些对象,已删除的对象不可恢复,请谨慎操作。

不涉及

暂停多版本控制功能

  • 如果当前版本没有删除标记且当前版本ID不为null,则当前版本会成为历史版本,系统创建ID为null的删除标记成为当前版本。
  • 如果当前版本没有删除标记且当前版本ID为null,则系统创建ID为null的删除标记直接覆盖当前版本。此时,删除标记成为最新版本,被覆盖的版本数据无法恢复。
  • 如果当前版本有删除标记,则不执行任何操作。
    说明:
    • 暂停多版本后,新上传的对象版本号为null。如果之前有空版本号的同名对象,则上传对象会覆盖该带空版本号的对象。
    • 开启“历史版本”开关,可以查看一个对象的版本ID。

删除的历史版本无法恢复。

已开启多版本控制功能

  • 如果当前版本没有删除标记,删除后系统会创建删除标记,当前版本会成为历史版本,删除标记成为当前版本。
  • 如果当前版本有删除标记,执行彻底删除操作后,则删除带删除标记的版本对象,即恢复对象。

删除的历史版本无法恢复。

由于打开了WORM开关的桶默认开启了多版本,当您不指定版本号进行删除对象操作时,由于多版本机制并不会真正删除此对象,您的操作可以成功并为最新版本的对象产生一个带唯一版本号的删除标记。当您指定版本号进行删除对象操作时,如果对象处于WORM保护状态,WORM的保护模式会限制对象的删除。删除标记不会被WORM保护。

结合生命周期

用户通过配置生命周期规则,定期清理不需要的文件夹和文件,可以释放存储空间,节约存储成本。执行生命周期规则时,OBS会根据桶的多版本状态,针对文件执行不同的删除操作。了解使用生命周期删除对象相关信息,请参见使用生命周期删除和转换对象存储类别的规则

使用方式

OBS支持通过管理控制台、API、SDK、OBS Browser+、obsutil方式删除对象或文件夹,单次最多可删除1000个对象。

删除未开启多版本控制的对象

删除对象

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

    图1 删除文件或文件夹

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

    图2 删除对象

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

  5. 对于启用了多版本控制或者已暂停多版本控制的OBS桶,想要彻底删除文件或文件夹,还需要执行以下步骤:

    1. 启用“历史版本”开关。
    2. 勾选所有对象版本,单击搜索栏上方的“彻底删除”。
      图3 彻底删除对象

    3. 单击弹窗中的“确定”,完成对象的彻底删除。

批量删除对象

如果需要删除桶中大量文件,或者删除一些周期性的文件,可以通过勾选多个文件,以批量方式删除文件。

  1. OBS管理控制台左侧导航栏选择“桶列表”
  2. 在桶列表中,单击待操作的桶,进入“对象”页面。
  3. 根据实际需求情况,勾选全部或需要删除的多个文件或文件夹,单击文件列表上方的“删除”
  4. 单击“确定”,确认删除文件或文件夹。

    还可以通过生命周期功能,定期自动删除桶中对象,提高删除效率。了解如何结合生命周期删除对象,请参见结合生命周期

日志与监控

为帮助用户及时感知并处理删除操作,OBS提供了从实时感知到事后审计的完整管控能力。用户可以配置删除对象监控的操作REST.PUT.NOTIFICATION,系统会记录所有删除对象操作的详细日志,供用户审计或进一步分析。了解配置监控日志相关操作,请参见使用桶日志记录OBS日志信息

相关文档

相关文档