介绍一款 提升markdown贴图体验的实用小工具,支持 windowsmac,基于 AutoHotkeyqshell 实现,支持本地文件、截图及网络图片一键上传至七牛云,并获取图片的 markdown引用 至剪贴板(Ctrl+Alt+V),并自动粘贴到当前编辑器。

  • 支持各种格式图片上传
  • 支持截图及网络图片直接复制上传
  • 支持各种格式单个文件上传
  • AutoHotkey开放源码,完全免费
  • 安装使用非常简单

参考文档

安装

1、 下载 qimage-win
首先从 github 下载最新的release版本(推荐使用2.*正式版),并解压到任意目录,在qimage-win文件夹中看到的目录结构应该如下:

其中dump-clipboard-png.ps1是保存截图的powershell脚本,qiniu-image-upload.ahk即完成文件上传的AutoHotkey脚本。

2、 安装 AutoHotkey

AutoHotkey官网下载安装最新版本,这是一款免费的、Windows平台下开放源代码的 热键脚本语言,利用其通过 自定义热键 触发一系列系统调用从而完成自动化操作。

这款软件的安装很简单,正常安装Next就行。具体软件更多学习内容可参照——AutoHotkey中文帮助

3、 注册七牛云账号并创建一个bucket

还没有七牛云帐号的朋友,😉欢迎通过我的邀请注册链接:https://portal.qiniu.com/signup?code=3lowm9s25ur82完成七牛云的注册,注册后会发邮件到你邮箱,通过邮件激活并登录即可。

ps:注册的时候,你要填一项个人网站域名,如果没网站的,就请随便填一个真实存在的网站吧,www.baidu.com也是可以的哦~

这个部分的操作请参照 Md2All的云图床

注意,在新建七牛云存储空间(bucket)时,选择存储区域上要多加留意,参照文档

存储区域 地域简称 上传域名
华东 z0 服务器端上传:http(s)://up.qiniup.com 客户端上传: http(s)://upload.qiniup.com
华北 z1 服务器端上传:http(s)://up-z1.qiniup.com 客户端上传:http(s)://upload-z1.qiniup.com
华南 z2 服务器端上传:http(s)://up-z2.qiniup.com 客户端上传:http(s)://upload-z2.qiniup.com
北美 na0 服务器端上传:http(s)://up-na0.qiniup.com 客户端上传:http(s)://upload-na0.qiniup.com
东南亚 as0 服务器端上传:http(s)://up-as0.qiniup.com 客户端上传:http(s)://upload-as0.qiniup.com

4、 配置文件

qimage-win 文件夹中打开settings.ini文件,可以看到:

这里的配置项都需要根据自己的七牛云账号以及所创建的 bucket 进行修改,后面的两个配置项为可选配置,默认情况下可以暂时先不管。

ACCESS_KEY & SECRET_KEY

这是qshell操作个人账号的账号凭证,登陆七牛账号后在个人面板->密钥管理中查看,或者直接访问https://portal.qiniu.com/user/key查看。

BUCKET_NAME & BUCKET_DOMAIN

对象存储->存储空间列表中选择或新建一个存储空间即 bucket,点击该 bucket 在右边看到一个测试域名,该域名bucketDomain便是图片上传后的访问域名,特别注意域名不要少了前面的http://头部。

完成文件上传的AutoHotkey脚本中默认的快捷键是^!V,即Ctrl+Alt+V(其中,^代表Ctrl!Alt),如果您希望修改为其它自己更习惯的快捷键,直接对qiniu-image-upload.ahk脚本修改即可生效。

关于hotkey的符号与按键对应关系请参考 You can use the following modifier symbols to define hotkeys

运行

配置完成后,以管理员身份运行qImage.exe,这时便可以参照下面的效果显示,使用Ctrl+Alt+V尝试一键上传图片至七牛云指定bucket了。

效果展示

本地图片文件上传

截图上传

其它文件上传

Q&A

如果以上操作完成后,没有按照预期达到图片上传的效果,可以先自己调试找一下原因,一般报错信息会打印在cmd命令行中,但是cmd窗口一闪而过可能看不清楚,这时候需要将settings.ini配置文件中的可选参数DEBUG_MODE = false改为DEBUG_MODE = true以打开调试模式,再次尝试,这时候cmd窗口不会自动关闭,便可以看到具体的报错信息从而对症下药解决问题。

使用过程中的任何问题可以在github中提交issues

常见问题一: 七牛云UP_HOST有误

具体的错误信息如下所示:

Uploading G:\Users\Cooper\Desktop\9999.png => markdown : 201705082057_244.png …
Progress: 100%
Put file error, 400 incorrect region, please use up-z2.qiniu.com, Reqid: 0wUAAGp6j6faorwU
Last time: 0.43 s, Average Speed: 415.6 KB/s

在七牛云的官方文档中UP_HOST为非必填项,配置文件中使用的是默认值http://up.qiniu.com,而每个区域所对应的的七牛云上传域名都不同,当与你所在空间区域不匹配时便会报以上的错误信息
不过很友善的是,错误信息中已经给出了建议的UP_HOST,例如上面的错误信息就给出明确的提示 please use up-z2.qiniu.com,这时将可选配置项UP_HOST = http://up.qiniu.com修改为UP_HOST = http://up-z2.qiniu.com,保存即可。

参照上面的存储区域-上传域名表格,不难看出出现这种报错的原因其实是因为,默认情况下,bucket的默认存储区域是 华东 ,对应http(s)://up.qiniup.com,但我之前在新建bucket时将 存储区域 选择在了 华南 地区,显然对应配置文件中自然需要修改成http://up-z2.qiniu.com!

常见问题二: powershell执行权限问题

具体的错误信息如下所示:

set-executionpolicy : 对注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell”的访问被拒绝。 要更改默认(LocalMachine)作用域的执行策略,请使用“以管理员身份运行”选项启动 Windows PowerShell。要更改当前用户的执行策略,请运行 “Set-ExecutionPolicy -Scope Current User”。

这是powershell执行权限问题,重新以管理员权限运行qImage.exe即可。

推荐阅读 !imp