管理OBS中的数据
在KooCLI中,已经集成了以命令行方式管理OBS数据的工具obsutil的功能。您可以通过使用"hcloud obs"命令,快速管理您在OBS中的数据。
功能概述
您可以使用KooCLI进行如下操作,管理您OBS中的数据:
| 功能 | 说明 | 
|---|---|
| 桶基本操作 | 指定区域创建不同存储类型的桶、删除桶以及获取桶列表、桶配置信息等。 | 
| 对象基本操作 | 管理对象,包括上传、下载、删除和列举对象等。 
 | 
| 日志记录 | 支持在客户端配置日志记录,记录对桶和对象的操作日志,方便统计与分析。 | 
初始化配置
使用KooCLI管理OBS数据之前,您需要配置其与OBS的对接信息,包括OBS终端节点地址(Endpoint)和访问密钥(AK和SK)。获得OBS的认证后,才能使用KooCLI执行OBS桶和对象的相关操作。
- 使用永久AK、SK进行初始化配置:
   hcloud obs config -i=ak -k=sk -e=endpoint
- 使用临时AK、SK、SecurityToken进行初始化配置:
   hcloud obs config -i=ak -k=sk -t=token -e=endpoint
检查连通性
配置完成后,您可以通过如下方式检查连通性,确认配置是否无误。
hcloud obs ls -s
 根据命令回显结果,检查配置结果:
- 如果返回结果中包含“Bucket number :”,表明配置正确。
- 如果返回结果中包含“Http status [403]”,表明访问密钥配置有误,或没有获取桶列表的权限,需要视具体场景进一步确认根因。
- 如果返回结果中包含“A connection attempt failed”,表明无法连接OBS服务,请检查网络环境是否正常。
命令结构
使用KooCLI管理OBS数据的命令结构如下:
hcloud obs command [parameters...] [options...]
  在Windows系统中,支持进入交互命令模式:
- 执行如下命令进入交互式:
    
    hcloud obs
- 按如下命令结构执行,以管理OBS数据:
    
    command [parameters...] [options...]如下所示: hcloud obs Enter "exit" or "quit" to logout Enter "help" or "help command" to show help docs Input your command: -->ls -limit=3 -s obs://bucket-001 obs://bucket-002 obs://bucket-003 Bucket number: 3
 
 
   - command为执行的命令,例如ls,cp等。
- parameters为该命令的基本参数(必选),例如创建桶时的桶名称。
- options为该命令的附加参数(通常为可选),且附加参数在运行命令时必须以“-”开头。参数支持两种传入方式“-key=value”和“-key value”,例如“-acl=private”和“-acl private”。两种参数传入方式无区别,您可以根据使用习惯选择任意一种方式。
- 方括号[]不是命令的一部分,在输入命令时,参数不能使用方括号[]括起来。
- 如命令中含有特殊字符,如&、<、>以及空格等,则需要加引号转义(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)。
 
 
   当在被委托的ECS服务器中使用KooCLI执行OBS的操作命令时,可在命令后添加参数“-authSource=ecsAgency”,会根据ECS委托自动获取临时认证信息用于OBS命令的鉴权。
您可以通过下表了解KooCLI支持的所有OBS操作命令,各命令的参数与obsutil一致,参数详情可参考OBS服务桶相关命令,对象相关命令,辅助命令相关章节。
| 类别 | 命令 | 功能 | 功能说明 | 命令结构 | 
|---|---|---|---|---|
| 桶相关命令 | mb | 创建桶 | 按照用户指定的桶名创建一个新桶。新创建桶的桶名在OBS中必须是唯一的。一个用户可以拥有的桶的数量不能超过100个。 | hcloud obs mb obs://bucket [-fs] [-az=xxx] [-acl=xxx] [-sc=xxx] [-location=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | 
| ls | 列举桶 | 获取桶列表,查询到的桶列表将以桶名字典序排列。 | hcloud obs ls [-s] [-du] [-sc] [-j=1] [-limit=1] [-format=default] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | |
| stat | 查询桶属性 | 查询单个桶的基本属性,包括桶的默认存储类型、桶的区域、桶的版本号、桶是否支持文件接口、桶的可用区、桶中对象数量、桶的存储用量以及桶的配额。 | hcloud obs stat obs://bucket [-acl] [-bf=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | |
| chattri | 设置桶属性 | 设置桶的存储类型、访问策略等属性。 | hcloud obs chattri obs://bucket [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | |
| rm | 删除桶 | 删除桶,待删除的桶必须为空(不包含对象、历史版本对象或分段上传碎片)。 | hcloud obs rm obs://bucket [-f] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | |
| bucketpolicy | 设置桶策略 | 设置桶策略。 | hcloud obs bucketpolicy obs://bucket -method=put -localfile=xxx [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | |
| 获取桶策略 | 获取桶策略。 | hcloud obs bucketpolicy obs://bucket -method=get [-localfile=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | ||
| 删除桶策略 | 删除桶策略。 | hcloud obs bucketpolicy obs://bucket -method=delete [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | ||
| 对象相关命令 | mkdir | 创建文件夹 | 在指定桶内或本地文件系统中创建文件夹。 | 
 | 
| cp | 上传对象 | 上传单个或多个本地文件或文件夹至OBS指定路径。待上传的文件可以是任何类型:文本文件、图片、视频等等。 | 
 | |
| 复制对象 | 复制对象或按对象名前缀批量复制对象。 | 
 | ||
| 下载对象 | 下载对象或按对象名前缀批量下载对象到本地。 | 
 | ||
| 恢复失败的上传任务 | 根据任务号(TaskId)恢复失败的上传任务。 | hcloud obs cp -recover=xxx [-arcDir=xxx] [-dryRun] [-f] [-u] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-clear] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | ||
| 恢复失败的复制任务 | 根据任务号(TaskId)恢复失败的复制任务。 | hcloud obs cp -recover=xxx [-dryRun] [-f] [-u] [-crr] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-clear] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | ||
| 恢复失败的下载任务 | 根据任务号(TaskId)恢复失败的下载任务。 | hcloud obs cp -recover=xxx [-dryRun] [-tempFileDir=xxx] [-f] [-u] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-clear] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | ||
| stat | 查询对象属性 | 查询对象的基本属性。 | hcloud obs stat obs://bucket/key [-acl][-bf=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | |
| chattri | 设置对象属性 | 设置对象的属性或按对象名前缀批量设置对象的属性。 | 
 | |
| ls | 列举对象 | 查询桶内对象或多版本对象,返回对象列表将按照对象名和版本号以字典序排列。 | hcloud obs ls obs://bucket[/prefix] [-s] [-d] [-v] [-du] [-marker=xxx] [-versionIdMarker=xxx] [-bf=xxx] [-limit=1] [-format=default] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | |
| 列举分段上传任务 | 查询桶内分段上传任务。 | hcloud obs ls obs://bucket[/prefix] [-s] [-d] -m [-a] [-uploadIdMarker=xxx] [-marker=xxx] [-limit=1] [-format=default] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | ||
| mv | 移动对象 | 移动对象或按对象名前缀批量移动对象。 | 
 | |
| sign | 生成对象的下载链接 | 生成指定桶内对象的下载链接,或按对象名前缀批量生成桶内对象的下载链接。 | 
 | |
| rm | 删除对象 | 
 | 
 | |
| sync | 增量同步上传对象 | 将本地源路径下的所有内容同步到OBS指定目标桶,使两边内容保持一致。这里的增量同步有两层含义: 
 | 
 | |
| 增量同步复制对象 | 将源桶指定路径下的所有对象同步到目标桶指定路径,使两边内容保持一致。这里的增量同步有两层含义: 
 | hcloud obs sync obs://srcbucket[/key] obs://dstbucket[/dest] [-dryRun] [-crr] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | ||
| 增量同步下载对象 | 将OBS源桶指定路径下的所有对象同步到本地目标路径,使两边内容保持一致。这里的增量同步有两层含义: 
 | hcloud obs sync obs://bucket[/key] folder_url [-tempFileDir=xxx] [-dryRun] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | ||
| restore | 恢复归档存储对象 | 恢复指定的存储类型为cold的对象或按指定的对象名前缀批量恢复存储类型为cold的对象。 | 
 | |
| abort | 删除分段上传任务 | 
 | 
 | |
| create-share | 创建目录分享的授权码 | 指定桶名、对象名前缀和提取码,创建目录分享的授权码。 | hcloud obs create-share obs://bucket[/prefix] [-ac=xxx] [-vp=xxx] [-dst=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | |
| share-ls | 授权码列举对象 | 使用授权码查询桶内对象,返回对象列表将按照对象名以字典序排列。 | 
 | |
| share-cp | 授权码下载对象 | 使用授权码下载对象或按对象名前缀批量下载对象到本地。 | 
 | |
| 辅助命令 | config | 更新配置文件 | 更新配置文件(.obsutilconfig)中的部分配置信息,可更新的配置包括:endpoint、ak、sk、token。 关于配置文件(.obsutilconfig)中参数的详细说明,请参见配置参数说明。 | 
 | 
| clear | 删除断点记录文件 | 删除指定文件夹下的断点记录文件。 | hcloud obs clear [checkpoint_dir] [-u] [-d] [-c] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] | |
| help | 查看命令帮助 | 查看工具支持的OBS命令,或查看某个具体命令的帮助文档。 | hcloud obs help [command] | |
| version | 查看版本号 | 查看所集成的obsutil的版本号。 | hcloud obs version | |
| archive | 归档日志文件 | 将日志文件归档到本地,或归档到指定的桶。 | 
 | |
| ls | 列举失败结果清单文件 | 按最后修改时间列举指定文件夹中cp命令及sync命令生成的失败结果清单文件。 | hcloud obs ls -failed [-limit=1000] [-o=xxx] | 
 
  