51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Next -22- 添加相册系列 -2- 使用七牛云qshell同步图像目录

本文介绍使用 qshell 同步本地文件目录到存储空间并体现出层级结构的方法。

准备工作 {#准备工作}

环境 {#环境}

要上传的资源目录:

工具下载 {#工具下载}

命令行工具 qshell 传送门

  • 各种操作系统需要下载的版本文档说得很清楚,我的ubuntu18.04 x64下载了qshell-linux-x64-v2.4.1.zip
  • 解压得到 qshell-linux-x64-v2.4.1
  • 重命名为 qshell,并赋予可执行权限

配置环境变量 {#配置环境变量}

将qshell文件所在位置加入到 ~/.bashrc 加载.bashrc使路径立即生效 测试,输入qshell -v 出现版本信息表明配置成功

配置账户 {#配置账户}

需要鉴权的命令都需要依赖七牛账号下的 AccessKey 和 SecretKey ,位于个人中心 -> 秘钥管理

秘钥管理

配置账户: 之后再次输入 qshell account 命令验证设置是否成功 此处操作后在当前用户主目录中生成 qshell 目录:

编写同步目录文件 {#编写同步目录文件}

在上文提到的~/.qshell 目录中创建配置文件,文件内容如下:

  • src_dir 为刚刚我存放照片的路径

  • bucket 为你的七牛云空间名称

同步文件 {#同步文件}

在~/.qshell文件夹下执行命令: 返回上传日志:

查看同步日志 {#查看同步日志}

日志存放在 ~/.qshell 文件夹下qupload文件夹内:

查看日志

进入七牛云控制台查看上传的文件 {#进入七牛云控制台查看上传的文件}

在控制台-> 空间管理 -> 文件管理 可以看到同步的文件

空间图片

图片文件目录更新 {#图片文件目录更新}

当我们更新了原始图片目录时(新建文件夹new,图片new.jpg):

方法一 {#方法一}

回到~/.qshell 上传文件: 发现并没有更新,不知道是不是有别的函数来完成这个功能。

于是写了简单脚本upload.sh可以实现实时同步: 使用时只需sh upload.sh即可,正好不用每次都找那个 upload.conf 了

真 - 同步文件夹

方法二 {#方法二}

咳咳,人家七牛云有这个设定的,不用自己费劲删人家日志。

在upload.conf中加入配置:

  • rescan_local:支持本地增量上传

  • overwrite :支持本地文件覆盖上传

再上传就好:

qshell qupload 配置 {#qshell-qupload-配置}

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

| 参数名 | 描述 | 可选参数 | |--------------------|-----------------------------------------------------------------------------------------------------------------------------|------| | src_dir | 本地同步路径,为全路径格式,工具将同步该目录下面所有的文件;不支持本地路径下的目录软连接。在Windows系统下面使用的时候,注意src_dir的设置遵循D:\\jemy\\backup这种方式。也就是路径里面的\要有两个(\\) | N | | bucket | 同步数据的目标空间名称,可以为公开空间或私有空间 | N | | file_list | 待同步文件列表,该文件列表内容必须是相对于src_dir的文件相对路径列表,可以不指定,工具将自动获取src_dir下面的文件列表。请使用 dircache 命令生成这个文件列表,生成之后可以手动删除不需要的行 | Y | | up_host | 上传域名,可选设置,一般情况下不需要指定 | Y | | ignore_dir | 保存文件在七牛空间时,使用的文件名是否忽略本地路径,默认为false | Y | | key_prefix | 在保存文件在七牛空间时,使用的文件名的前缀,默认为空字符串 | Y | | overwrite | 是否覆盖空间中已有的同名文件,默认不覆盖。 | Y | | check_exists | 每个文件上传之前是否检查空间中是否存在同名文件,默认为false,不检查 | Y | | check_hash | 在check_exists设置为true的情况下生效,是否检查本地文件hash和空间文件hash一致,默认不检查,节约同步时间 | Y | | check_size | 在check_exists设置为true的情况下,如果check_hashfalse,那么你可以设置check_sizetrue做简单的大小检查,以查看本地文件和空间文件大小是否一致,默认不检查 | Y | | skip_file_prefixes | 跳过所有文件名(不带相对路径)以该前缀列表里面字符串为前缀的文件 | Y | | skip_path_prefixes | 跳过所有文件路径(相对路径)以该前缀列表里面字符串为前缀的文件 | Y | | skip_fixed_strings | 跳过所有文件路径(相对路径)中包含该字符串列表中字符串的文件 | Y | | skip_suffixes | 跳过所有以该后缀列表里面字符串为后缀的文件或者目录 | Y | | rescan_local | 默认情况下,本地新增的文件不会被同步,需要手动设置为true才会去检测新增文件。 | Y | | log_level | 上传日志输出级别,可选值为debug,info,warn,error,默认info | Y | | log_file | 上传日志的输出文件,如果不指定会输出到qshell工作目录下默认的文件中,文件名可以在终端输出看到 | Y | | log_rotate | 上传日志文件的切换周期,单位为天,默认为1天即切换到新的上传日志文件 | Y | | log_stdout | 上传日志是否同时输出一份到标准终端,默认为false,主要在调试上传功能时可以指定为true | Y | | file_type | 文件存储类型,默认为0(标准存储) 1为低频存储 | Y | | delete_on_success | 上传成功的文件,同时删除本地文件,以达到节约磁盘的目的,比如日志归档的场景,默认为false,如果需要开启功能,设置为true即可。 | Y |

配置文件示例 {#配置文件示例}

我的配置文件使用了常用的实用配置,供大家参考: 上传后的一张图片链接:

https://uipv4.zywvvd.com:33030/HexoFiles/vvd_hexo/2015_11_28_hefei_ustc_fengjing/1.jpg


文章链接:
https://www.zywvvd.com/notes/hexo/theme/next/22-qiniuyun-qshell/qiniuyun-qshell/

赞(0)
未经允许不得转载:工具盒子 » Next -22- 添加相册系列 -2- 使用七牛云qshell同步图像目录