Fuzqing

利用七牛云的qshell工具qupload将本地目录中的文件同步到七牛空间中
利用七牛云的qshell工具qupload将本地目录中的文件同步到七牛空间中,备份网站数据qshell是什么qsh...
扫描右侧二维码阅读全文
18
2018/03

利用七牛云的qshell工具qupload将本地目录中的文件同步到七牛空间中

利用七牛云的qshell工具qupload将本地目录中的文件同步到七牛空间中,备份网站数据

qshell是什么

qshell 是基于七牛 API 参考手册实现的一个方便开发者测试和使用七牛 API 服务的命令行工具。
qshell由七牛官方发布,可在七牛官网下载,最新版本是v2.1.5
qshell文档:https://github.com/qiniu/qshell

1. 下载安装:https://developer.qiniu.com/kodo/tools/1302/qshell

到七牛云官网下载对应操作系统的版本

mkdir ~/qiniu/
cd ~/qiniu/
wget https://dn-devtools.qbox.me/2.1.5/qshell-linux-x64        #下载qshell
sudo chmod +x qshell-linux-x64                                 #添加可执行权限
sudo mv qshell-linux-x64 /usr/local/bin/qshell                 #移动并改名
qshell -v                                                      #查看版本,测试是否安装成功

2. 密钥设置

该工具有两类命令,一类需要鉴权,另一类不需要。
qupload命令需要在鉴权下使用。
需要鉴权的命令都需要依赖七牛账号下的 AccessKey 和 SecretKey。所以这类命令运行之前,需要使用 account 命令来设置下 AccessKey ,SecretKey 。

qshell account ak sk

qupload命令文档:https://github.com/qiniu/qshell/blob/master/docs/qupload.md

3.配置

qupload 功能需要配置文件的支持,配置文件支持的全部参数如下:

{
   "src_dir"            :   "<LocalPath>",
   "bucket"             :   "<Bucket>",
   "file_list"          :   "<FileList>",
   "key_prefix"         :   "<Key Prefix>",
   "up_host"            :   "<Upload Host>",
   "ignore_dir"         :   false,
   "overwrite"          :   false,
   "check_exists"       :   false,
   "check_hash"         :   false,
   "check_size"         :   false,
   "rescan_local"       :   true,
   "skip_file_prefixes" :   "test,demo,",
   "skip_path_prefixes" :   "hello/,temp/",
   "skip_fixed_strings" :   ".svn,.git",
   "skip_suffixes"      :   ".DS_Store,.exe",
   "log_file"           :   "upload.log",
   "log_level"          :   "info",
   "log_rotate"         :   1,
   "log_stdout"         :   false,
   "file_type"          :   0
}

各个参数的描述可以查看qupload的文档,其中"src_dir","bucket"这两个参数是必选的

4.使用

创建一个qupload的配置文件比如:upload.conf

{
    "src_dir"              : "/home/fuzqing/files/images",
    "bucket"               : "images",
    "rescan_local"         : true,
    "overwrite"            : true,
    "delete_on_success"    : true
}
qshell qupload  upload.conf

上传成功后会自动删除本地文件,上传速度很快的。

5.利用qshell定时更新本地目录中的内容

由于qshell本身出于工具简洁考虑,没有加入自动检查目录更新,然后上传的功能。对于某些情况下,有些用户需要qshell能够支持定时同步本地的文件更新。对于这种需求,我们可以结合shell脚本和qshell的配置来实现。
首先,为了能够支持本地文件增量上传,需要设置 rescan_local 为 true,另外为了支持本地更新的文件覆盖空间已有的文件内容,需要设置 overwrite 为 true。所以基本的配置文件如下:

{
    "src_dir"      : "/home/fuzqing/files/images",
    "bucket"       : "images",
    "rescan_local" : true,
    "overwrite"    : true
}

然后我们再准备一个脚本,定时检测本地文件并上传,比如10分钟检测一次,就是600秒。

#!/bin/bash
while [ "1" = "1" ]
do
qshell qupload upload.conf
sleep 600
done

然后把脚本保存为upload.sh然后使用sh upload.sh运行即可。 对于在服务器端长时间执行后台命令,可以参考 screen 或者 tmux 命令的用法,可以在后台开启 ssh 的 session 用来执行脚本。

end

Last modification:May 3rd, 2018 at 05:24 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment