BOS CLI 的安装
BOS CLI是什么? 为了方便用户使用百度的对象存储,百度开放云提供了一款可以通过命令行工具调用bos服务的小工具,对于很多linux的爱好者来说,这个小工具堪称使用bos的利器。 BOS CLI能做什么?它可以让你在命令行环境下,完成bucket的创建和删除,object的上传,下载以及删除拷贝的功能。下面我们来看一下如何安装?
安装可以参考官方的文档: http://bce.baidu.com/doc/BOS/BOSCLI.html#.E5.AE.89.E8.A3.85BCE.20CLI 具体安装还是很简单的,但前提是一定必须要先安装bce python sdk,且bce python sdk的版本必须是0.8.4及以上。 在安装bce-cli的时候,经常遇到的一个问题,如下图所示:
这是由于在系统python的安装包里没有setuptools这个模块。 如果是linux的系统,可以直接运行命令:apt-get install python-setuptools(ubuntu)或者 yum install python-setuptools。 如果是windows的系统,需要download 这个:https://bootstrap.pypa.io/get-pip.py,然后执行:python.exe get-pip.py。
安装完成之后,运行bce(在windows下需要运行python bce),如果出现下面的提示,就表示安装成功:
BOS CLI的使用
我觉得广大朋友来说,如果你对linux命令很熟,CLI工具最方便的就是,能够直接编写shell来实现批量下载object到本地,到远程;批量删除object。(这里官方文档居然没给出一些sample,真是非常可惜) 假设我们已经通过bce -c 设置好了AK,SK等等信息,这里就不说怎么设置了,具体可以参考官方文档。
1. 批量删除bucket下面的object
创建一个名称叫testdelobj.sh的文件:
#!/bin/bash
#将bos的bucket作为第一个参数传进来
bce bos ls -r "bos:/"$1 >results
#得到要删除的object的个数
LEN=`awk '{print NR}' results |tail -n1`
echo "##There will be " $LEN " objects will delete from BOS server.##"
echo "You have 10 seconds to interrupt..."
sleep 10
for object in `awk '{print $4}' results`; do
bce bos rm -y bos:/$1/$object
done
然后将testdelobj.sh的权限改成可执行,chmod 777 testdelobj.sh 运行 ./testdelobj.sh xdtest,就可以批量删除BOS上的文件了(xdtest是我BOS服务的一个bucket)。 不过有个问题,如果是通过控制台创建的文件夹,再在文件夹里存有文件,我运行上面的脚本并不会完全删除所有内容。会留有一个空的节点在控制台上。这是为什么呢? 其实是这样的:如果通过控制台创建的文件夹A,会在bos服务器端存放一个字节为0的A/ ,但是通过命令行创建的以及通过sdk上传的模拟的文件夹,在服务器端不会存放这个。
赞分享。不过图看不见啊。
额,现在能看到吗?
现在是能看到。。。
赞,感谢楼主分享,学习了。
好文,版主呢? 给人加精啊。