应用七牛 qshell 和 Automator 打造快速上传效劳

泉源

早前定阅了一个图片上传东西 iPic,单单就图片上传这一功用来说它无疑是非常优异的。无法我有的时刻要上传一些非图片小文件,虽然这个只是个小功用,一个小小的剧本就能够做到,然则想一想用到这个功用的时刻还要翻开terminal,emmmm…(纵然本人身为顺序员terminal一向不会关)。

然后某一天看到了七牛的SDK有敕令行东西 qshell (七牛云有免费对象存储空间),而 macOS 的 Automator 又是支撑运转 shell 剧本的,再加上早前应用 Automator 做过一项彩色图转灰度图的功用,晓得这些功用是能够做成体系效劳的……我有一个斗胆勇敢的主意。

实践主意

翻开 Automator 挑选效劳

《应用七牛 qshell 和 Automator 打造快速上传效劳》

然后挑选 运转 Shell 剧本 拖拽到右侧,顺序能够选 finder 或许 任何应用顺序

《应用七牛 qshell 和 Automator 打造快速上传效劳》

shell 范例务必挑选 /bin/bash !纵然你装置了 zsh 也不要用!

之前在效劳器上装置了
zsh ,效果
PM2 布置项目死活不胜利,找了一圈也没答案,也许没有我这么无聊的人,把效劳器设置成
zsh ?

《应用七牛 qshell 和 Automator 打造快速上传效劳》

code

这里我们先查阅一下 qshell 上传文件的文档和运用示例:

# 上传当地文件/Users/jemy/Documents/qiniu.jpg到空间if-pbl内里
$ qshell fput if-pbl qiniu.jpg /Users/jemy/Documents/qiniu.jpg

这里主如果对 Key 的组织,即上传文件在七牛存储中的文件名,我挑选的组织规则是[日期]-[时候戳MD5值]-[文件名],能够有用躲避文件名反复的题目,完全代码以下:

urlencode() {
  local length="${#1}"
  for (( i = 0; i < length; i++ )); do
    local c="${1:i:1}"
    case $c in
      [a-zA-Z0-9.~_-]) printf "$c" ;;
    *) printf "$c" | xxd -p -c1 | while read x;do printf "%%%s" "$x";done
  esac
done
}

for f in "$@"

do
    if [ -f $f ]; then
        Key=$(date +%F)-$(date +%s | md5 | head -c 8)-$(basename $f)
        /usr/local/bin/qshell fput static "$Key" $f
        link="//static.domain.me/$(urlencode $Key)"
        if [ "$links" == "" ]; then
            links=$link
        else
            links=$links"\n"$link
        fi
    fi
done

echo -ne $links | pbcopy

这里须要诠释的几个点:

  • pbcopy 敕令会把 echo 中的内容安排到体系粘贴板中;
  • 关于 urlencode :在上传测试过程当中,发明一旦挑选的文件列表中含有中文定名的文件,就会致使文件链接组织非常,末了也到不了体系粘贴板中,详细缘由不明,所以在组织链接时做一次编码就好,横竖浏览器自身也会对编码的链接自行辨认;
  • if [ -f $f ] 是为了推断文件与文件夹;
  • 考虑到MD5值太长,我只截取了8位;
  • echo 的两个参数能够参考该文
  • 请把资本链接的域名改成你对应的。

test

写完剧本以后能够运转测试,Automator 界面右上角有一个运转,在运转之前我们先模仿选中了一些文件。

《应用七牛 qshell 和 Automator 打造快速上传效劳》

增加文件:

《应用七牛 qshell 和 Automator 打造快速上传效劳》

测试的时刻请把 /usr/local/bin/qshell fput static "$Key" $f 删除。

运转胜利以后粘贴板中应当会有以下内容:

//static.domain.me/2017-10-16-9f26b83d-img2%e7%9a%84%e5%89%af%e6%9c%ac.jpg
//static.domain.me/2017-10-16-9f26b83d-image.png

到这里,只剩下下载装置 qshell 就功德圆满:

$ mv ~/Downloads/qshell /usr/local/bin
$ chmod 755 /usr/local/bin/qshell
$ qshell account AccessKey SecretKey

这里还用到了修正权限敕令,有兴致的话能够检察我另一篇文章效劳器搭建—Linux基础知识

完毕

如今你能够适才测试时增加的 finder 去掉,定名并保留,就能够像如许运用:

《应用七牛 qshell 和 Automator 打造快速上传效劳》

下面能够完美一下上传完毕后的关照:

《应用七牛 qshell 和 Automator 打造快速上传效劳》

除此之外,你还能够在体系设置中为该效劳增加快捷键,好了,我去作废定阅 iPic 了……

另有值得一提的是,七牛的对象存储免费额度还挺大的,拿来做私人图床照样很不错的,我还设置了CDN美滋滋?。

    原文作者:BingqiChen
    原文地址: https://segmentfault.com/a/1190000012625867
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞