有点标题党的感觉, 但是我今天说的这个软件确实很多人都用, 叫做 Greenshot 咨询了它的作者, 用户量竟然过亿
先展示一下成果
为了更方便的使用七牛云的图床服务, 去年实现了一个开源截图工具的插件, 专门用来上传图片到七牛图床操作过程如下:
第一步: 打开截图工具进行截图, 然后选择 upload to qiniu 传送到七牛图床服务器中
第二步: 接完图后连接会生成 markdown 连接并且拷贝到剪贴板中, 写博客直接粘贴链接即可:
比手动操作方便多了当时写了一个帖子:
写 markdown 博客如何将截图快速上传到图床记一个工具插件的实现 (2017-05-31 20:23
上次使用是把插件和相关的库文件拷贝到 Greenshot 的安装目录下面对这些文件也做了分享, 看了看百度网盘, 有几十个人下载, 没有反馈但是手动拷贝终究还是不太方便的
说明一下自己打包的原因
本来想把代码提交 PL 给原作者, 然后放到官方安装包中 release 但原作者说此软件用户量大概有 1 个亿 (竟然有一个亿), 他说怕七牛的服务器撑不住, 最后会影响其它功能, 这是个开源的免费软件, 他们人力有限, 所以暂时他还没有 approve 当然这个一亿应该是全世界的用户量, 中国有多少他没说, 我然后在 github 上提交了 issues 给七牛 SDK 开发人员, 但是没有反馈后来想想干脆自己出包算了
分享
最终出的包放在了网盘中:
链接: 密码: 1749
如何使用
安装, qiniu 插件是默认选中的, 把 exe 安装包下载下来之后, 默认安装即可
配置, 看之前的帖子, 直接看配置这一节就可以了这次打包加了一个 Zone 的配置项, 例如我的 Zone 为华北, 选择 CN_North 即可
打包过程记录
原作者是用 powershell 脚本进行打包的, 一个是 prebuild.ps1, 另外一个是 build.ps1, 把这个流程弄懂后, 以后可以方便的实现功能, 打包分享了
我们的目标是把 qiniu 的插件成功的打包到 exe 安装包中, 过程中的某些问题以能被解决为最终目的, 有些细节弄的也不是很清楚
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
成功之后会生成下面的文件列表
来源: https://www.cnblogs.com/harlanc/p/8434070.html