操作场景
为节省空间和成本,您可以通过obs管理控制台、api、sdk、obs browser 、obsutil方式删除无用的文件或文件夹。
本小节主要介绍如何手动删除文件或文件夹。手动和自动删除对比参见表1。
表1 删除方式
删除方式 |
使用场景 |
删除规则 |
手动删除 |
如果需要对少量或者无规律的文件进行删除时,可以选择手动方式。 |
|
自动删除 |
如果需要一次性删除桶中大量文件,或者删除一些周期性的文件。可以通过生命周期功能,定期自动删除桶中对象,提高删除效率。 |
对于并行文件系统目录,大数据场景下(目录层级深、目录下文件多)的删除,可能会因超时而删除失败,建议使用:
- hadoop 客户端(嵌套obs客户端插件obsa)删除目录:hadoop fs - rmr obs://{并行文件系统名}/{目录名}。
- 给目录配置生命周期,通过生命周期后台删除。
多版本控制功能对删除操作的影响
删除对象有丢失数据的风险,需要谨慎操作,而利用多版本控制功能可以降低该风险。
场景 |
删除对象的当前版本 |
删除对象的历史版本 |
未开启多版本控制功能 |
obs将彻底删除这些对象,已删除的对象不可恢复,请谨慎操作。 |
不涉及 |
暂停多版本控制功能 |
- 如果当前版本没有删除标记且当前版本id不为null,则当前版本会成为历史版本,系统创建id为null的删除标记成为当前版本。
- 如果当前版本没有删除标记且当前版本id为null,则系统创建id为null的删除标记直接覆盖当前版本。此时,删除标记成为最新版本,被覆盖的版本数据无法恢复。
- 如果当前版本有删除标记,则不执行任何操作。
说明:
- 暂停多版本后,新上传的对象版本号为null。如果之前有空版本号的同名对象,则上传对象会覆盖该带空版本号的对象。更多多版本相关信息请参见多版本控制。
- 开启“历史版本”开关,可以查看一个对象的版本id。
|
删除的历史版本无法恢复。 |
已开启多版本控制功能 |
- 如果当前版本没有删除标记,删除后系统会创建删除标记,当前版本会成为历史版本,删除标记成为当前版本。
- 如果当前版本有删除标记,则不执行任何操作。
说明:
- 如果想要彻底删除,需要再到“已删除对象”列表进行删除。
- 如果想要找回删除的文件,可以通过“取消删除”功能来找回。详情请参见取消删除对象。
|
删除的历史版本无法恢复。 |
使用方式
obs支持通过控制台、api、sdk、obs browser 、obsutil方式删除对象或文件夹。
使用图形化工具obs browser
- 登录obs browser 。
- 选中待配置的桶,进入文件列表。
- 右键待删除的文件或文件夹,并单击“删除”。
也可以选中多个文件或文件夹,单击文件列表上方的“更多>删除”进行批量删除。
- 在消息确认框中单击“是”。
使用命令行工具obsutil
命令结构:
- windows操作系统
- 删除单个对象
obsutil rm obs://bucket/key [-f] [-versionid=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 批量删除对象
obsutil rm obs://bucket/[key] -r [-j=1] [-f] [-v] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- macos/linux操作系统
- 删除单个对象
./obsutil rm obs://bucket/key [-f] [-versionid=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- 批量删除对象
./obsutil rm obs://bucket/[key] -r [-j=1] [-f] [-v] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
运行示例:
- 以windows操作系统为例,运行obsutil rm obs://bucket-test/key -f,删除bucket-test桶中名为key的单个对象。
obsutil rm obs://bucket-test/key -f
start at 2024-09-25 04:48:10.1147483 0000 utc
delete object [key] in the bucket [bucket-test] successfully, cost [152], request id [0000016979e1d2b2860bb5181229c72c]
参数说明:
参数 |
约束 |
描述 |
bucket |
必选 |
桶名。 |
key |
删除单个对象时必选
批量删除对象时可选 |
待删除的对象名,或批量删除的对象名前缀。
说明:
批量删除对象时,如果该参数为空,则表示删除桶中所有的对象。
|
fr |
附加参数,删除单个对象时可选 |
删除单个对象时生成结果清单文件。 |
f |
附加参数,可选 |
强制操作,不进行询问提示。 |
versionid |
附加参数,删除单个对象时可选 |
待删除对象的版本号。 |
r |
附加参数,批量删除对象时必选 |
按指定的对象名前缀批量删除对象。
注意:
批量删除对象时,会将与前缀匹配的所有对象删除,请谨慎使用。
|
j |
附加参数,批量删除对象时可选 |
批量删除对象时的最大并发数,默认为配置文件中的defaultjobs。
|
v |
附加参数,批量删除对象时可选 |
按指定的对象名前缀批量删除多版本对象和多版本删除标记。 |
o |
附加参数,可选 |
生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(可能包含成功结果和失败结果两个文件),默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。
说明:
- 结果清单文件命名规则:rm_{succeed | failed}_report_时间_taskid.txt。
- 单个结果清单文件默认情况下最大为30mb且最大可保留的文件个数为1024,可在配置文件中通过recordmaxlogsize和recordbackups分别配置。
- 当涉及多文件/文件夹时,如需确认失败任务的具体错误信息,可参考结果清单文件夹下的失败结果清单文件"rm_failed_report_时间_taskid.txt"及日志路径下的日志文件;
|
config |
附加参数,可选 |
运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 |
e |
附加参数,可选 |
指定终端节点。 |
i |
附加参数,可选 |
指定用户的ak。 |
k |
附加参数,可选 |
指定用户的sk。 |
t |
附加参数,可选 |
指定用户的securitytoken。 |
响应结果:
字段名 |
描述 |
parallel |
请求中的-p参数。 |
jobs |
请求中的-j参数。 |
threshold |
请求中的-threshold参数。 |
partsize |
请求中的-ps参数。 |
exclude |
请求中的-exclude参数。 |
include |
请求中的-include参数。 |
timerange |
请求中的-timerange参数。 |
verifylength |
请求中的-vlength参数。 |
verifymd5 |
请求中的-vmd5参数。 |
checkpointdir |
请求中的-cpd参数。 |
outputdir |
请求中的-o参数。 |
arcdir |
请求中的-arcdir参数。 |
succeed count |
成功的任务数。 |
failed count |
失败的任务数。 |
skip count |
增量上传/下载/复制、同步上传/下载/复制跳过的任务数。
|
warning count |
执行完成但包含警告的任务数。
说明:
- 产生警告的任务可能是失败的也可能是成功的,需要根据成功或失败的结果清单进一步判断。
- 产生警告的任务数与成功/失败任务数是相互独立的,总任务数仍是成功的任务数 失败的任务数。
|
succeed bytes |
上传/下载成功的字节数。 |
max cost |
所有任务中的最长耗时,单位:毫秒。 |
min cost |
所有任务中的最短耗时,单位:毫秒。 |
average cost |
平均耗时,单位:毫秒。 |
average tps |
平均每秒的任务完成个数。 |
task id |
每次运行的唯一标识号,用于查找批量任务生成的结果清单文件。 |