七牛笔记(更新中…)

因为需要图床,懒得选择,看了同事博客,发现这图床可以满足要求(容量还行、可以命令行同步等),就先用着吧。

好早前就注册了,但因为认证为标准用户需要拿着身份证拍照,就懒得动了。如今,只要有支付宝账号,即可完成实名认证过程(注:个人实名认证时的「个人网址」随便填即可,例如你的微博/知乎等主页网址都行

下载与安装

在官网手册 中提到的地址下载对应自己操作系统的版本即可

对 *nix 系统,可 [Shift] + [Command] + G 打开 /usr/local/bin/,将解压出的 3 个文件拖入该目录下。这样以后就可以直接在命令行中调取它们了。[1]

命令行上传

1. 首先撰写官网手册 中提到的 conf.json 文件

各字段如此获取:

  • access_keysecret_key:在新版的「个人面板」->「密钥管理」,旧版的「账户」->「密钥」中
  • bucket:指定上传空间名
  • sync_dir:本地要上传的目录,绝对路径形式
  • async_ops:上传预转参数。若上传音视频需要转码可用该参数,否则保留空即 "" 即可
  • debug_level:默认即可

注1:官网手册有点旧,未更新,特别是access_keysecret_key字段如何获取,仍为旧链接;
注2:如上各字段均,除了最后的debug_level为数字,其余均为字符串,应包含于英文双引号内

2. 命令行执行 qrsync //conf.json 即可完成同步

3. 如何更新文件

文件夹下每一个文件 filename.file

七牛在本地是用一个以 .log 为后缀名的文件记录同步进程的,本地每个独立的同步文件夹均对应本地一个 .log 记录,下的任一文件 filename.file 在首次同步时都将在该 对应的 .log 文件中生成一条记录;每次执行 qrsync 时,在正式向云端推送前都会由 qrsync 自动检查该 .log 文件中是否存在 filename.file 的记录。只要记录中已经有文件 /filename.file 的同步记录,那么文件 filename.file 便不会被推送到云端。

这种设计在某种程度上避免了重复上传,但为希望向云端推送文件最近更新的用户造成了一个问题:

qrsync 只检索 .logfilename.file 的记录,而没有用其他字段检查其内容是否有所变动;当用户更新了该文件后,执行同步功能时,文件不会被同步上传,从而云端的文件无法保持在最新的状态。

解决这个问题的思路很简单:

只要删除 filename.file 对应的 .log 文件中的记录即可

这样,qrsync 将认为 /filename.file 未被推送过,从而会将其推送到云端;发生文件名冲突时,将直接用最新的文件替换掉云端的旧文件。

步骤也很简单:

  1. 假设待同步文件夹为 ,用户希望更新 /filename.fileCONF_path.json 是文件夹 对应的同步脚本
  2. 每次执行 qrsync CONF_path.json 时,系统会显示 3 部分提示内容:Syncing ..../Progress file: .../Sync done!,记录 Progress file:后对应的那个 .log 对应的路径(例如:/Users/shangjunsu/.qrsync/abcdefg.log
  3. 编辑上述路径下的 .log 文件,删除其中 filename.file 对应的记录
  4. 执行 qrsync CONF_path.json,待同步完毕即可

命令行下载[2][3]

  1. 首先根据官方手册提示,GitHub 上下载 qshell
  2. 如果是 Mac 用户,选择 qshell_darwin_386qshell_darwin_amd64,改名为 qshell,输入 [Shift] + [Command] + G 打开 /usr/local/bin/,把它复制到该文件夹下[1]
  3. 创建一个 python 脚本如下:[4]
    qshell account  ` # 这两个字段同上述方法取得
    qshell listbucket  .list.txt # 获取名为  的空间内文件列表
    
    

参考资料


  1. 如何使用七牛云做为图床? ↩ ↩

  2. qshell 命令行工具 ↩

  3. qshell ↩

  4. qshell wiki - listbucket ↩

你可能感兴趣的:(七牛笔记(更新中…))