文章時常會有更新,可能無法每次來這裏更新,要看新版本的直接戳:https://www.xiebruce.top/17.html
PicUploader
PicUploader 是一個用php編寫的藉助Mac的『自動操作/Automator』來幫助你快速上傳你的圖片到七牛雲/騰訊雲/網易雲/百度雲/阿里雲/京東雲/又拍雲/sm.ms/Imgur並自動把地址拼接成markdown格式放到剪貼板的小工具(故只有MacOS用戶能使用),配置完成後,要獲取一個可用於markdown的圖片外鏈只需要:右擊圖片→點擊你的自定義菜單
→到markdown編輯器中粘貼!支持圖片壓縮,添加文字/圖片水印!
一、 註冊存儲服務器賬號
目前支持七牛雲/騰訊雲/網易雲/百度雲/阿里雲/京東雲/又拍雲/sm.ms八種,以下服務選擇一種就可以,如果是自己搭建的博客,強烈推薦又拍雲!
1. 註冊七牛雲
2.註冊騰訊雲
3.註冊網易雲
4.註冊百度雲
5.註冊京東雲
6.註冊阿里雲
7.註冊又拍雲(強烈推薦)
如果您有自己的網站/博客,強烈推薦使用又拍雲,因爲又拍雲的免費額度最大,每個月有10G空間+15G流量(只需要在你的網站放一個帶鏈接的又拍雲logo即可),但需要先申請又拍雲聯盟,申請通過後又拍雲會給你發放(一般是週五審覈,有可能要等個一週甚至兩週,但又拍雲聯盟還未通過審覈時,也是可以用的,傳一點東西是沒啥問題,傳多了我也不知道會怎樣,理論上是收費吧,但很便宜的,我傳了一點圖片也沒被收費)。
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
- 先註冊Imgur:https://imgur.com/register
- 然後創建Application,這一步能拿到clientID和clientSecret:
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
- 使用git下載:git clone https://github.com/xiebruce/P...
- 或者直接下載: 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外鏈』。
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)
裏面找到對應的按鈕,把它們的勾去掉就行。
三、開始使用
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
百度