摘要:運行成功之后粘貼板中應該會有如下內容到這里,只剩下下載安裝就大功告成這里還用到了修改權限命令,有興趣的話可以查看我另一篇文章服務器搭建基礎知識。
來源
早前訂閱了一個圖片上傳工具 iPic,單單就圖片上傳這一功能來說它無疑是非常優秀的。無奈我有的時候要上傳一些非圖片小文件,雖然這個只是個小功能,一個小小的腳本就可以做到,但是想想用到這個功能的時候還要打開terminal,emmmm…(縱然本人身為程序員terminal一直不會關)。
然后某一天看到了七牛的SDK有命令行工具 qshell (七牛云有免費對象存儲空間),而 macOS 的 Automator 又是支持運行 shell 腳本的,再加上早前利用 Automator 做過一項彩色圖轉灰度圖的功能,知道這些功能是可以做成系統服務的…...我有一個大膽的想法。
實踐想法打開 Automator 選擇服務
然后選擇 運行 Shell 腳本 拖拽到右邊,程序可以選 finder 或者 任何應用程序
shell 類型務必選擇 /bin/bash !即使你安裝了 zsh 也不要用!
之前在服務器上安裝了zsh ,結果 PM2 部署項目死活不成功,找了一圈也沒答案,大概沒有我這么無聊的人,把服務器配置成 zsh ?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="http://static.domain.me/$(urlencode $Key)" if [ "$links" == "" ]; then links=$link else links=$links" "$link fi fi done echo -ne $links | pbcopy
這里需要解釋的幾個點:
pbcopy 命令會把 echo 中的內容放置到系統粘貼板中;
關于 urlencode :在上傳測試過程中,發現一旦選擇的文件列表中含有中文命名的文件,就會導致文件鏈接構造異常,最后也到不了系統粘貼板中,具體原因不明,所以在構造鏈接時做一次編碼就好,反正瀏覽器本身也會對編碼的鏈接自行識別;
if [ -f $f ] 是為了判斷文件與文件夾;
考慮到MD5值太長,我只截取了8位;
echo 的兩個參數可以參考該文;
請把資源鏈接的域名改成你對應的。
test寫完腳本之后可以運行測試,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 去掉,命名并保存,就可以像這樣使用:
下面可以完善一下上傳結束后的通知:
除此之外,你還可以在系統設置中為該服務添加快捷鍵,好了,我去取消訂閱 iPic 了......
還有值得一提的是,七牛的對象存儲免費額度還挺大的,拿來做私家圖床還是很不錯的,我還配置了CDN美滋滋?。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/10978.html
摘要:實現一個命令完成打包同步上傳服務器說明由于我們用的七牛云存儲,所以也是走的七牛,所以并不適用于其他的,但是思路可以借鑒打包打包目前我這邊用的是,網上已經有很多文章了,這里就不作過多闡述了,只是說一下這個參數,如果要做同步肯定是要配置這個參 webpack+gulp+qshell+npm-scripts實現一個命令完成[打包+同步cdn+上傳服務器] 說明 由于我們用的七牛云存儲,所以c...
摘要:,在后續測試時遇到一個詭異,當文件過大時,任務腳本上傳到七牛云失敗。當我遇到大文件無法上傳到七牛云時,斷點調試到這里,發現返回的是。后來還真被我找到了,七牛云官方提供一個腳本工具。 業務場景 需求 我們項目有一個文件上傳需求,需要從客戶端上傳到七牛云的對象存儲和自己的應用服務器上。這里使用七牛云主要是實現下載分發。應用服務器需要留一份是因為后續需要做文件分析(并且是上傳后需要立馬分析出...
摘要:簡介小伙伴們,如果覺得本文還不錯,記得點個贊或者給個,你們的贊和是我編寫更多更豐富開源項目的動力地址技術棧全家桶前后端分離開發模式,前端項目與后端項目屬于不同的工程前端工程后端工程注此項目純屬個人瞎搞,與無任何關系。 簡介 Hello 小伙伴們,如果覺得本文還不錯,記得點個贊或者給個 star,你們的贊和 star 是我編寫更多更豐富開源項目的動力!GitHub 地址 技術棧 rea...
閱讀 1033·2023-04-26 02:26
閱讀 2143·2021-09-26 10:16
閱讀 1552·2019-08-30 12:57
閱讀 3466·2019-08-29 16:10
閱讀 3221·2019-08-29 13:47
閱讀 1188·2019-08-29 13:12
閱讀 2139·2019-08-29 11:11
閱讀 1336·2019-08-26 13:28