準備工作
- github倉庫 +
github_token
生成token之後備份好 Alfred
軟件 支持正版,盜版可恥😄Shell
腳本,Mac自帶的bash即可,用到curl
工具
腳本如下:
filePath=$1 # /Users/mac/Desktop/1.jpg 文件路徑 是通過Alfred選中事件傳入進來的
fileName=`date +%Y%m%d%H%M%S`.${filePath##*.} #時間到秒+路徑截取拼接文件名 防止重複
CommitMsg="Mac通過Shell腳本上傳了一張圖片"$fileName #提交信息可自定義
echo<<EOF
$userName github用戶名
$repoName 倉庫名
$path 路徑名即存放圖片的目錄
$github_token github生成的token
EOF
#輸出結果 採用jsdelivr的免費加速服務
Target_Img_URL="https://cdn.jsdelivr.net/gh/$userName/$repoName/$path/"$fileName
#文件base64編碼 不換行
Base64_Content=$(base64 -b 0 $filePath)
#github開發的API接口
API_URL="https://api.github.com/repos/$userName/$repoName/contents/$path/"${fileName}
Acess_Token="token $github_token"
# 發起PUT網絡請求 -X是指定方法類型 -H是header參數可以傳多個 -d 是傳json參數 單引號shell不能入參所以只能轉義
result=$(curl \
-X PUT \
-H "Content-Type:application/json"\
-H "Authorization:$Acess_Token" \
-H "Accept:application/vnd.github.raw"\
${API_URL} \
-d "{\"message\":\"${CommitMsg}\",\"content\":\"${Base64_Content}\"}")
#因爲返回結果是一堆json數據 但只有成功的時候纔會返回committer字段 所以匹配一下用於判斷
IsUpload=`echo $result | grep "committer"`
if [[ -n "$IsUpload" ]]; then
#將結果拷貝至剪貼板
echo $Target_Img_URL | pbcopy
#如果需要markdown模式則打開如下代碼註釋即可
#echo "![]($Target_Img_URL)" | pbcopy
#發起AppleScript腳本通知事件
osascript -e "display notification \"$Target_Img_URL\" with title \"通知\" subtitle \"上傳成功,地址已拷貝至剪貼板\""
fi
#如此就大功告成了!
Alfred設置相關
如圖新建一個空白的blank workflow
然後加Hotkey
和Run Script
,設置對應的快捷鍵以及腳本調用
設置快捷鍵如圖:
設置腳本調用如圖:
然後是配置變量列表(結合腳本和下圖理解),導出可清空字段值勾選上不至於私密數據token之類的泄漏或者共享(這個功能很銀杏化)
最後是大功告成了!
雖然我覺得PicGo
+TyPora
效率也很高,但是這個是自己親手寫出來的工具還是要嘚瑟嘚瑟的~ 哈嘿~
最後
成品在這 github圖牀工具
參考博客
Alfred Workflow 一鍵上傳圖片到github
如何製作一個手機上的Github圖牀捷徑(workflow)
PicGo