从新打包用户量过亿的开源截图软件——加入图片自动上传到图床的功能

有点标题党的感受,可是我今天说的这个软件确实不少人都用,叫作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图片连接。
  • 提供截图历史看板功能,能够把最近的一些截图展现出来,能够把不须要的或者截错的图删掉。

目前想到这两个。

最后,若是好用请点赞,若是有任何问题请留言,谢谢。

相关文章
相关标签/搜索