從新打包用戶量過億的開源截圖軟件——加入圖片自動上傳到圖牀的功能

有點標題黨的感受,可是我今天說的這個軟件確實不少人都用,叫作Greenshot。諮詢了它的做者,用戶量居然過億。html

先展現一下成果

爲了更方便的使用七牛雲的圖牀服務,去年實現了一個開源截圖工具的插件,專門用來上傳圖片到七牛圖牀。操做過程以下:git

  • 第一步:打開截圖工具進行截圖,而後選擇「upload to qiniu」傳送到七牛圖牀服務器中。

  • 第二步:接完圖後鏈接會生成markdown鏈接而且拷貝到剪貼板中,寫博客直接粘貼連接便可:

比手動操做方便多了。當時寫了一個帖子:github

寫markdown博客如何將截圖快速上傳到圖牀——記一個工具插件的實現(2017-05-31 20:23shell

上次使用是把插件和相關的庫文件拷貝到Greenshot的安裝目錄下面。對這些文件也作了分享,看了看百度網盤,有幾十我的下載,沒有反饋。可是手動拷貝終究仍是不太方便的。服務器

說明一下本身打包的緣由

原本想把代碼提交PL給原做者,而後放到官方安裝包中release。但原做者說此軟件用戶量大概有1個億(居然有一個億),他說怕七牛的服務器撐不住,最後會影響其它功能,這是個開源的免費軟件,他們人力有限,因此暫時他尚未approve。固然這個一億應該是全世界的用戶量,中國有多少他沒說,我而後在github上提交了issues給七牛SDK開發人員,可是沒有反饋。後來想一想幹脆本身出包算了。markdown

DOWNLOAD

最終出的包放在了網盤中:app

連接: 密碼: 1749工具

如何使用

  • 安裝,qiniu插件是默認選中的,把exe安裝包下載下來以後,默認安裝便可。
  • 配置,看以前的帖子,直接看配置這一節就能夠了。此次打包加了一個Zone的配置項,例如個人Zone爲華北,選擇CN_North便可。

打包過程記錄

原做者是用powershell腳本進行打包的,一個是prebuild.ps1,另一個是build.ps1,把這個流程弄懂後,之後能夠方便的實現功能,打包分享了。
咱們的目標是把qiniu的插件成功的打包到exe安裝包中,過程當中的某些問題以能被解決爲最終目的,有些細節弄的也不是很清楚。ui

prebuild

prebuild是用來build前的準備工做的,卡住的地方在生成簽名文件的地方:插件

# Write the certificate to a file
[System.Convert]::FromBase64String($env:Certificate) | set-content "greenshot.pfx" -encoding byte
# Decode password to secure string
$password = ConvertTo-SecureString $env:CertificatePassword -AsPlainText -Force
# Import pfx
Import-PfxCertificate -FilePath .\Greenshot.pfx -CertStoreLocation Cert:\CurrentUser\My -Password $password`

怎麼也生不成pfx文件,最後用openssl本身生成了一個,而後替換了Greenshot.pfx,也替換了相關的環境變量:

# Write the certificate to a file
[System.Convert]::FromBase64String($env:Certificate) | set-content "greenshot.pfx" -encoding byte
# Decode password to secure string
$password = ConvertTo-SecureString '123456' -AsPlainText -Force
# Import pfx
Import-PfxCertificate -FilePath .\Greenshotca.pfx -CertStoreLocation Cert:\CurrentUser\My -Password $password

期間還碰到一個命令不能被識別的問題,以下:

網上搜索了相關資料,說是powershell版本過低,在win7上把版本升到最新仍是沒有解決,最後看到有人提到到win10下執行,試了一下竟然成功了。

最後執行成功後會是下面這個樣子:

build

期間也是遇到了各類問題,最後總結成三點:

編譯七牛插件

打包的過程當中Greenshot若是使用了外來程序庫的話會將其注入到插件中,因此在安裝greenshot後你會看不到qiniu.dll.這樣打包的時候也方便,只要打包插件就能夠了。

簽名工具

greenshot中的簽名工具調用過程當中使用了本身定義的一個環境變量,我也就從網上下載了最新的signtool.exe。本身設置環境變量指向這個簽名工具便可。

template

加一個新的插件進來須要更新setup.iss.template文件。把插件名字和路徑等信息加上便可。關於多過語言我只添加了英文和中文。

有關代碼能夠看個人github

成功以後會生成下面的文件列表。

後續需求

如今有些地方仍是不方便,列出兩個需求:

  • 並非全部人都使用markdown語法寫博客,因此應該提供選擇,剪貼板中保存markdown連接仍是普通的URL圖片連接。
  • 提供截圖歷史看板功能,能夠把最近的一些截圖展現出來,能夠把不須要的或者截錯的圖刪掉。

目前想到這兩個。

最後,若是好用請點贊,若是有任何問題請留言,謝謝。

相關文章
相關標籤/搜索