Mac利用Automator製作右鍵菜單一鍵獲取markdown圖片外鏈

文章時常會有更新,可能無法每次來這裏更新,要看新版本的直接戳:https://www.xiebruce.top/17.html

PicUploader

PicUploader-logo.png

PicUploader 是一個用php編寫的藉助Mac的『自動操作/Automator』來幫助你快速上傳你的圖片到七牛雲/騰訊雲/網易雲/百度雲/阿里雲/京東雲/又拍雲/sm.ms/Imgur並自動把地址拼接成markdown格式放到剪貼板的小工具(故只有MacOS用戶能使用),配置完成後,要獲取一個可用於markdown的圖片外鏈只需要:右擊圖片→點擊你的自定義菜單→到markdown編輯器中粘貼!支持圖片壓縮,添加文字/圖片水印!

這是一個用於演示的gif圖,如果你看到這行文字說明它沒加載出來,請點我直接跳轉鏈接查看吧,或者使勁強刷

一、 註冊存儲服務器賬號

目前支持七牛雲/騰訊雲/網易雲/百度雲/阿里雲/京東雲/又拍雲/sm.ms八種,以下服務選擇一種就可以,如果是自己搭建的博客,強烈推薦又拍雲!

1. 註冊七牛雲

2.註冊騰訊雲

3.註冊網易雲

4.註冊百度雲

5.註冊京東雲

6.註冊阿里雲

7.註冊又拍雲(強烈推薦)

如果您有自己的網站/博客,強烈推薦使用又拍雲,因爲又拍雲的免費額度最大,每個月有10G空間+15G流量(只需要在你的網站放一個帶鏈接的又拍雲logo即可),但需要先申請又拍雲聯盟,申請通過後又拍雲會給你發放(一般是週五審覈,有可能要等個一週甚至兩週,但又拍雲聯盟還未通過審覈時,也是可以用的,傳一點東西是沒啥問題,傳多了我也不知道會怎樣,理論上是收費吧,但很便宜的,我傳了一點圖片也沒被收費)。
Xnip2018-10-13_17-07-44.png

8.無需註冊直接使用sm.ms

  • 直接使用是上傳到sm.ms,經過測試,在國內(不含港澳臺)使用sm.ms時好時壞,除非開科學上網,否則不穩定,如果小齒輪一直轉個不停,基本上就是上傳失敗超時了。
  • 設置代理:可以上傳的情況下不建議設置代理,如果上傳超時、報錯,則設置代理試試,直接在配置文件填寫代理的ip+端口即可,如(127.0.0.1:1087),不過設置代理後上傳速度會稍慢(具體快慢取決於你的代理速度):
//https://sm.ms
'smms' => [
    'baseUrl' => 'https://sm.ms/api/',
    //代理地址,如果使用shadowsocks做代理,ip填http://127.0.0.1(或直接填127.0.0.1)即可,
    //端口從『偏好設置→HTTP→監聽端口』找,留空或註釋掉表示不使用代理
    'proxy' => 'http://127.0.0.1:1087',
],
  • 注意sm.ms單張圖片不能超過5M,但由於我有做壓縮,一般不會超過5M,如果上傳後粘貼沒有內容或者報錯,請查看日誌,很有可能是這張圖片壓縮後超過了5M,或者圖片是超過5M的gif圖(gif圖不壓縮)

9.註冊Imgur

https://api.imgur.com/oauth2/addclient
<p align="center"><img src="https://img.xiebruce.top/2018...; title="5be737f29d355.jpg" alt="5be737f29d355.jpg"></p>

  • 雖然註冊了Imgur,但用我這個工具上傳後,你還是無法從你的Imgur賬號上找到你上傳的圖片,原因是我不是網頁應用,所以無法做授權(Imgur不提供其他授權方式,所以上面拿到的clientSecret並沒有什麼用處),所以,用Imgur做圖牀還是相當於匿名圖牀。
  • 另外,因爲Imgur是國外的,如果上傳報錯,請使用科學上網工具,並在配置文件中打開代理的註釋,填寫你的代理端口。

二、下載使用

1.下載PicUploader

注意下載後把它解壓放到一個相對穩定一點的目錄,不能放在『下載』裏面,因爲這樣你可能隨手刪除了。(以後最好不要移動,否則要改配置比較麻煩)

2.填寫配置

  • PicUploader/config/config.php文件command+D複製一份,命名爲config-local.php,然後在config-local.php中修改你的配置(配置你的七牛雲/騰訊雲/網易雲/百度雲/阿里雲/京東雲/又拍雲/Imgur其中一個)即可。
  • 如果使用sm.ms,那就不需要修改配置了,直接使用!
  • 以配置七牛雲存儲爲例,在config-local.php文件中找到以下代碼,填好AK/SK/bucket/domain四個參數,如果不知道參數怎麼來,請查看註冊七牛雲對象存儲教程
//Qiniu Cloud
'qiniu' => [
    //七牛雲AppKey
    'AK' => 'ASGZ******************************o0AoF',
    //七牛雲AppSecret
    'SK' => 'UoC******************************JylkEy',
    //七牛雲對象存儲空間名
    'bucket' => 'm*****n',
    //七牛雲外鏈域名
    'domain' => 'http://pe5s*********clouddn.com',
    //七牛優化參數,直接加在鏈接後面,但是不會優化原圖,只會優化輸出的圖片,如果不需要可以不配置該項(即註釋掉)
    // 'optimize' => '?imageMogr2/thumbnail/800x/strip/quality/80',
],
  • 搜索storageType,並在=>後設置您當前要使用哪個雲,如我要使用七牛雲:
'storageType' => 'Qiniu',
  • 支持同時上傳到多個雲,只需逗號隔開即可,比如我現在就同時上傳到6個雲:
'storageType' => 'Qiniu,Tencent,Netease,Upyun,Qingcloud,Ucloud',

也許你會覺得奇怪,同時上傳到那麼多雲幹嘛?看了這篇文章你就知道了:使用nginx負載均衡+多個雲的免費額度打造免費markdown圖牀

三、使用『自動操作/Automator』新建一個workflow服務

1.打開『自動操作/Automator』

或者像下面gif圖演示的那樣用『聚焦搜索』來打開

2.按下圖操作

注意每一個需要選擇的地方都不要選錯,其中最後一步保存的文件名,將出現在右鍵菜單上,你可以自己取一個自己喜歡的名字,比如『獲取Markdown外鏈』。
添加一個服務.gif

export LC_CTYPE="zh_CN.UTF-8"
/usr/bin/php /Users/xxxxx/www/PicUploader-master/index.php "$@" | pbcopy

注意:

  • 注意/usr/bin/php這個路徑,最好在終端用which php命令來查看它的路徑,確認一下是否正確,如果執行which php命令後輸出的不是/usr/bin/php,則以which php命令輸出的爲準。
  • 把/Users/xxxxx/www/PicUploader-master/index.php 的路徑換成你自己的index.php路徑,怎麼看你的index.php路徑呢?打開終端,把index.php文件拖到終端上,終端就會顯示出它的路徑。
  • 特別注意:貌似是從macOS Mojave 10.14開始,Mac自帶php缺少freetype擴展,導致gd庫處理圖片的時候報錯,如果你是做php開發的,那這個問題你肯定解決了,如果不是,那你需要解決這個問題,先用這下邊這個命令看看有沒有內容輸出,如果什麼都沒有輸出,那就確定是缺少freetype
php -i | grep configure | grep freetype
  • 確定缺少freetype之後,如果你不用水印功能,則可以不理會,如果你要使用水印功能,請使用以下命令重裝php(否則會報錯),重裝後,上面的/usr/bin/php請直接改成/usr/local/bin/php,不需要看which php的結果了(如果你以前沒有這麼安裝過,安裝時間可能會稍長,請保持電腦不要自動睡眠):
brew install php

3.試試右擊任意圖片

看,最後一個按鈕是不是就是你剛剛保存的Services名稱?什麼?你電腦上沒看見?那是因爲你電腦上超過5個這種類似的菜單,它就自動收到二級菜單下了,其實很多菜單根本用不到,你可以到系統偏好設置鍵盤快捷鍵服務(Services)裏面找到對應的按鈕,把它們的勾去掉就行。
Xnip2018-09-07_23-58-26.png

三、開始使用

1.右擊任意一張圖片

如果一切正常,你對着圖片右擊,並點擊右鍵菜單中的獲取Markdown鏈接後,你將會在Mac頂部工具欄那裏看到一個小齒輪在轉動,說明Services正在執行,圖片正在上傳,當小齒輪停止轉動(不需要等它消失),即說明上傳已經完成,同時右上角會彈出通知,此時剪貼板已經有你上傳的圖片地址了,直接到markdown編輯器command+v粘貼試試吧

2. 爲你創建的服務創建快捷鍵

系統偏好設置鍵盤快捷鍵服務(Services)→找到你的自定義菜單添加快捷鍵即可,當然喜歡用鼠標搞定的童鞋也可以不創建。

3.查看上傳日誌

  • 因爲在配置文件中的logPath可以配置日誌顯示在桌面, 'logPath' => 'desktop' ,所以不出意外,你的桌面裝會有一個如下圖所示的文件夾,這裏保存了你上傳的圖片的Markdown外鏈地址,你在七牛雲(或者其他服務器)是能找到對應的圖片的,如果你覺得哪張圖片不想要,可以在對應服務器中把它刪除了。

<p align="center"><img src="https://img.xiebruce.top/2018...; title="Xnip2018-11-19_12-59-59.jpg" alt="Xnip2018-11-19_12-59-59.jpg"></p>

  • 這個日誌文件也是markdown格式,所以你可以用mweb之類的markdown編輯器查看它,但是有個問題當你用Mweb打開它之後,如果再上傳一張圖片,這個文件裏肯定會增加一條你上傳的記錄,但是在Mweb中卻不會刷新,必須關掉重新打開才能看的到,這個特別麻煩,建議用typora這個軟件來打開日誌,這個會自動刷新,而且免費。
  • 日誌是倒序添加的,即最新上傳的圖片在最前面,方便一時忘了粘貼,可以找到地址,因爲在服務器中文件多的話比較難找到。

四、注意事項

1.關於config裏的imgWidth選項

  • 由於各個雲服務器免費空間有限(七牛雲免費10G,好像也不小了哈哈),而且大文件加載特別慢,所以有些大圖片需要壓縮後上傳,由於試過按質量壓縮對圖片影響較大,所以選擇按寬度壓縮(高度會保持等比例適應)。
  • 如果要設置壓縮圖片,建議imgWidth設置爲800或1000,別擔心分辨率低的圖壓縮後看不清,即使設置了該選項,分辨率比較低的圖片也是不會被壓縮的。
  • 由於gif圖片實際上是由很多張圖片組合在一起的,它的壓縮比較麻煩,需要Mac裝一些額外的庫,所以暫時選擇不壓縮gif(也就是說即使你設置了imgWidth爲800或者1000,也不會壓縮gif圖片)
  • 如果你用的是七牛雲,則返回的圖片地址中『?imageMogr2/thumbnail/800x/strip/quality/80』這部分是七牛雲的壓縮參數(如果你配置了的話),也就是說這部分參數你可以去掉直接查看你上傳的圖,其中thumbnail/800x表示設置寬度爲800,strip表示去除一些exif信息以減小圖片大小,quality/80表示設置圖片質量爲原來的80%,其實還可以在最後加個/format/webp這樣圖片加載會快很多,因爲webp能在最大程度還原圖片清晰度的同時把圖片體積降到最小。

2.安裝管理工具

因爲圖片上傳到七牛雲後,在七牛的後臺實在無法直觀的瀏覽和管理圖片,如果你希望方便管理你的圖片,可以下載兩款谷歌瀏覽器插件:

  • qiniu upload files 用來管理七牛雲上的圖片
  • 七牛雲圖牀 一款可以讓你直接上傳圖片到七牛雲的工具,但是它沒有分文件夾。
  • 騰訊COS官方MacOS客戶端:點擊前往下載
  • 百度BOS官方MasOS客戶端:點擊前往下載
  • 如果是又拍雲,因爲又拍雲沒有網頁管理工具,只能自己用ftp工具查看。

3.上傳完成無法彈出通知問題

  • 一般情況下,上傳完成後右上角就會彈出通知,如果你沒有彈出,有可能是因爲系統沒更新的問題,像我的系統版本一直是10.13.1,我的就不彈,但是我讓別人試就會彈(後來我更新10.14(Mojave)系統後,就能正常彈出提示了)。
  • 如果你的系統也沒更新,那有可能也不會彈通知,那就只能看工具欄上的小齒輪,小齒輪停止轉動說明上傳完成(不需要等小齒輪消失,停止轉動即已完成),然後就可以去markdown編輯器粘貼了。

4、說個不幸的消息

  • 七牛雲默認域名是測試域名,只能使用30天,30天后該域名會被回收,所以你需要綁定自己的域名,但綁定自己的域名需要域名已經備案,而域名備案是跟網站一塊的,就是說如果你只買了域名沒有自己的網站的話,是無法備案的,這時你可以看看有沒有朋友有已備案的域名,叫他給你解析一個二級域名也行,因爲一個人一般只用一兩個二級域名,所以會有很多二級域名可用的。
  • 又拍雲也提供默認測試域名,不過我問過又拍客服,又拍雲的測試域名是不會回收的,也就是你可以一直使用,不需要有自己已備案的域名,但缺點是,又拍雲的默認域名提供的cdn服務器比較少,也就是說,你用又拍雲默認的域名可能加載圖片會比較慢,所以也是建議你綁定自己的域名,當然了,又拍雲綁定自己的域名,同樣要求域名已備案,國內所有云都有這個要求!

五、更新日誌

2018-11-24 v2.6版本

  • 添加青雲QingCloud及Ucloud的支持
  • 修改結構,去除冗餘代碼
  • 添加支持同時上傳到多個雲

2018-11-15 v2.5.2版本

  • 用戶指定日誌位置後,只創建日誌軟鏈接(快捷方式),日誌原文件存儲在項目目錄下的logs目錄中

2018-11-13 v2.5.1版本

  • 修復壓縮無效的bug
  • 修復壓縮臨時文件未刪除的問題
  • 添加壓縮質量配置

2018-11-11 v2.5版本

  • 添加支持Imgur

2018-10-20 v2.4版本

  • 添加水印支持(支持文字水印、圖片水印)
  • 去掉了上傳到sm.ms同時返回了刪除鏈接的問題,但日誌裏還是會有刪除鏈接

2018-09-21 v2.3版本

  • 修改config結構
  • 使用變量類名動態識別調用不同存儲類型對應的類以精簡代碼
  • 在每個類裏動態調用配置文件

2018-09-19 v2.2.2版本

  • 添加又拍雲支持

2018-09-08 v2.2.1版本

  • 解決圖片文件名爲中文時粘貼亂碼或者無法粘貼的問題
  • 修改了README.md中說的不清楚的地方,部分英文菜單改用中文

2018-09-06 v2.2版本

  • 添加支持百度雲
  • 添加支持京東雲
  • 添加支持阿里雲

2018-09-06 v2.1版本

  • 添加支持網易雲
  • bug fix

2018-09-06 v2.0版本

  • 完全重構代碼
  • 添加支持騰訊雲
  • 添加上傳日誌路徑配置(可配置到桌面方便隨時查看)

2018-09-01 v1.1版本

  • 添加支持https://sm.ms,默認上傳到sm.ms
  • 添加mardownWithLink鏈接類型(點擊圖片後能跳轉到圖片鏈接)
  • fix bug log時間設置成東八區

2018-08-30 v1.0版本

由於個人寫markdown需要,目前現有的一些筆記軟件都因爲各種原因傳圖並不是很方便,於是寫了這個小工具,想到可能有跟我一樣需求的童鞋,就順手發出來供有需要的童鞋使用,如有處理不好的地方在所難免,希望大家能批評指正!

六、參考資料

七牛雲phpsdk文檔
百度知道:沒有個人網站怎麼註冊七牛雲存儲
sm.ms Api
GuzzleHttp官方文檔
騰訊雲phpsdk文檔
網易雲phpsdk文檔
阿里雲phpsdk文檔
京東雲phpsdk文檔
百度雲phpsdk文檔
又拍雲phpsdk文檔
Imgur API
google
百度

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章