图床工具ImgGo
V2.0版本已实装,新增文件直接上传和配置文件热部署功能,且在性能上有一定优化
链接:Go图床V2.0
不知道大家在写博客的时候有没有本地的截图上传到服务器后再继续写,感觉很麻烦的烦恼?之前这个问题我一直是用PicGo这个开源软件做的,它可以做到截图->快捷键一键上传,但是它必须要是用阿里云OSS或者七牛云,但是OSS等要付一定的流量费用(其实也不贵,但是有服务器为什么要多花钱呢🤑🤑🤑),所以后来我就做了个定时任务,把每天新增的博客的图片扫描,然后上传到服务器的fastdfs
这样既有了PicGo的方便,又不用去支付额外的费用,但是我昨天思来想去,以后博客系统进一步完善之后,这样的机制属实不够优雅。所以我就决定自己做一个图片一键上传工具。
我选择的语言是golang,之所以选择它是因为他比较轻量级(相对java),开销比较小,因为服务端只需要接收图片一个功能。然后客户端选择golang是因为我不会c#😑,而且golang可以直接编译为exe文件,体积会比java编译出的jar小,而且不依赖java环境。
现在,我已经把它做成了我的博客系统的御用图床工具,新增了图片剪裁功能,优化了客户端的使用体验。
在本文中只讲解怎样使用这个工具以及怎样编译
本工具用到了robotgo toast clipboard_go 几个开源代码仓库
运行程序
1. 运行服务端
(1).修改配置文件
打开server.json
(2).运行server
如果你是win的服务器的话,点击server.exe
运行即可,如果是linux,需要在目录下使用chmod 777 server
修改文件权限后使用nohup ./ImgGoServer& > server.log
以守护式进程运行程序。
2.运行客户端
程序客户端用到了windows的api,因此只能在win上使用,不能交叉编译到mac使用.
(1).修改配置文件
修改client.json
(2).运行客户端
双击ImgGo.exe
即可运行
启动成功会提示
然后截图,按ctrl + shift+ z
上传图片
会看到图片上传成功的提示,此时图片的地址已经在剪切板了,在浏览器地址栏ctrl + v
访问,上传成功。
编译程序
golang运行部署还是很方便的,不过要注意的就是想让客户端不弹窗后台运行,以及发送给别人用需要加一些特殊的参数
go build -ldflags "-extldflags \"-static\" -s -w -H windowsgui" main/client/ImgGo.go
服务端在win下编译linux可执行文件需要交叉编译,依次在控制台输入就可以编译完成
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main/server/ImgGoServer.go
设置开机自启
win+R
打开运行窗口,输入shell:startup
,然后在出现的文件夹里放入我们的client.exe
的快捷方式,然后我们就可以在任务管理器看到如下信息
评论
添加一条评论