美文网首页
BOS CLI的简单使用

BOS CLI的简单使用

作者: tanxiniao | 来源:发表于2015-09-17 14:43 被阅读0次

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的时候,经常遇到的一个问题,如下图所示:

Paste_Image.png
这是由于在系统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),如果出现下面的提示,就表示安装成功:

Paste_Image.png

BOS CLI的使用

我觉得广大用户来说,如果你对linux命令很熟,CLI工具最方便的就是,能够直接编写shell来实现批量下载object到本地,到远程;批量删除object。
假设我们已经通过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上传的模拟的文件夹,在服务器端不会存放这个。

2. 批量将一个bucket的内容拷贝到另一个bucket下面

注:这个bucket可以是自己的,也可以是别人的,如果是要拷贝别人bucket里的内容,注意对方bucket得是公共的权限。
创建一个名为testcp.sh的文件,内容如下:
#!/bin/bash

bce bos ls -r "bos:/$1" >results
LEN=`awk '{print NR}' results |tail -n1`
echo $LEN
for  object in `awk '{print $4}' results`; do
   bce bos cp  bos:/$1/$object bos:/$2/$object
done

3. 批量将一个bucket的内容拷贝到本地

有了前面两个例子,这个脚本写起来就没有难度了,唯一的难点就是怎么在本地创建和bos bucket一致的目录结构了。

#!/bin/bash

#Pass the first argument 
bce bos ls -r "bos:/"$1 >results

#get object number
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

相关文章

  • BOS CLI的简单使用

    BOS CLI 的安装 BOS CLI是什么? 为了方便用户使用百度的对象存储,百度开放云提供了一款可以通过命令行...

  • EOS Cafe开设bos.bloks.io

    BOS已经于1月底启动并运行! 我们EOS Cafe还开设了bos.bloks.io 您可以使用bos.bloks...

  • .NET CLI简单使用

    官方文档https://docs.microsoft.com/zh-cn/dotnet/core/tools/?t...

  • Vue-cli搭建项目

    第一步 vue-cli vue-cli安装非常简单,它为我们节省了很多webpack配置文件。vue-cli的使用...

  • Vue项目构建

    一.初始化简单demo 1.首先全局安装vue-cli: $npm install -g vue-cli 2.使用...

  • BOS项目第11天

    11 BOS项目第11天 今天学习将activiti整合进BOS系统 11.1 查看流程实例列表 前提:使用jun...

  • 版本切换/安装指定版本

    使用 yarn 安装 CLI OR使用 npm 安装 CLI OR 安装了 cnpm,使用 cnpm 安装 CLI

  • webpack 脚手架安装vue项目

    超简单使用vue-cli+webpack脚手架来构建vue项目

  • 关于Vue-cli脚手架webpack模板的目录结构

    使用过Vue的朋友们应该非常清楚,使用vue-cli构建的项目十分简单,今天和大家说一下有关于Vue-cli的目录...

  • vue cli创建项目失败

    vue cli创建项目失败 最近使用vue cli创建项目时总是失败,在此分享一下我的解决办法,简单粗暴: 如果这...

网友评论

      本文标题:BOS CLI的简单使用

      本文链接:https://www.haomeiwen.com/subject/zhsbcttx.html