[自建图床解决方案分享] lsky + 阿里云盘 + webdav

2022-08-31 17:17:45 +08:00
 nihaorz

一直在 cnblogs 写博客(更多是转发记录一些大神的解决问题过程),习惯把文章的图片一张张抠下来再上传,效率太低了,实践了一下 typora+picgo 自动上传 http 图片替换成自己图床的地址。

实践一下 github 、gitee 、jihulab 和七牛云作为图片存储后端:

遂想到了把自己的公网 ip 和软路由利用起来

1 、docker 容器把 aliyundrive-webdav 跑起来,开启用户认证,指定根目录

2 、再跑一个 lsky-pro ,创建一个新的存储策略,对接上一步的 webdav ,将用户的存储策略改成 webdav

3 、再跑一个 webdav ,这个 webdav 关闭用户认证和自动索引,存储策略的访问域名改成这个新的 webdav ,这样以后上传图片直接返回的就是无需认证的 webdav 地址了

4 、picgo 装 lankong 插件配置,picgo 和 typora 一顿配置猛如虎,好像插入图片会自动上传并替换成图床地址了

总结

1 、一套部署下来比较麻烦,还要跑一个数据库( lsky 支持 sqlite ,然而我没跑起来)

2 、需要自己有公网 IP 加服务端设备

3 、不知阿里云盘会不会屏蔽图片,tg 上分享的热门电影可是很容易被屏蔽的

收获

1 、dockerhub 上找到 halcyonazure/lsky-pro-docker 镜像,使用挺简单,就是没有 arm 架构的镜像,fork 了一把源码,恶补了一下 github actions ,搞出了自己的 arm 架构镜像

2 、typora 结合 picgo 终于可以愉快的抠图了

3 、发现我的壁纸,收藏的插画可以愉快的安家了,lsky 后端管理预览效果还不错,还有高级搜索,我在 picgo 的 lankong 插件配置了一个小号来做图片上传,写作图片和我的收藏的插画互不干扰

4 、最后收获凌晨两点睡觉

3376 次点击
所在节点    分享发现
13 条回复
wonderfulcxm
2022-08-31 17:20:20 +08:00
lsky-pro-docker 的 arm 镜像可以分享一下吗?我也想在 n1 上整一套
AllenHua
2022-08-31 17:23:26 +08:00
借贵楼推荐我写的兰空图床 PicGo 插件: https://github.com/hellodk34/picgo-plugin-lankong

以及同时支持 amd64 和 arm64 的 docker 镜像: https://hub.docker.com/r/dko0/lsky-pro

@wonderfulcxm 可以看看我的
nihaorz
2022-08-31 17:25:04 +08:00
@wonderfulcxm
docker pull wangrui027/lsky-pro ,我这个是 arm64 架构的镜像,你看一下 n1 跑不跑的起来,跑不起来我再加几个低版本的 arm 架构镜像( github actions 构建镜像比较慢,可能内容比较多吧,所以我只构建了 x86 和 arm64 架构)
AllenHua
2022-08-31 17:26:15 +08:00
@wonderfulcxm #1 我的 N1 上也跑着一个 lsky pro ,建议安装 mysql 8 了,我的原文还是拿 5.7 举例的。
nihaorz
2022-08-31 17:26:33 +08:00
@AllenHua 我用的就是你这个插件,感谢大佬的辛苦劳动啊
AllenHua
2022-08-31 17:29:30 +08:00
@nihaorz #5 不客气不客气。我也是受益者。

另外这不是有嘛,在 docker hub 上搜,能搜到我构建的支持 arm64 的镜像

![6151888189e7c32a8e42529941b56b5f.jpg]( https://img.gejiba.com/images/6151888189e7c32a8e42529941b56b5f.jpg)
nihaorz
2022-08-31 17:36:11 +08:00
@AllenHua 收到,可以愉快的玩耍了
muhahaha
2022-09-03 15:45:05 +08:00
@AllenHua 感谢大佬写的插件!不知道能否提个需求,就是可以不可以支持 http 的接口连接?
AllenHua
2022-09-03 16:05:14 +08:00
@muhahaha #8 我的图床也是搭建在内网的,Server 那里使用内网的 http 形式的 ip + port ,也是能成功上传的啊。不太清楚你的具体需求是什么,http 的接口连接?不就是 http://192.168.2.178:7791 这样子么
muhahaha
2022-09-03 16:15:56 +08:00
@AllenHua 感谢回复!我 server 也是用的这个形式,但是上传图片提示:

2022-09-03 16:14:13 [PicGo ERROR]
------Error Stack Begin------
RequestError: TypeError [ERR_INVALID_PROTOCOL]: Protocol "http:" not supported. Expected "https:"
AllenHua
2022-09-03 17:05:14 +08:00
@muhahaha #10 你把 ignore certificate error 关掉试试看,我刚试了下打开时遇到了同样错误。这个开关是给 letsencrypt 有效期只有三个月的证书(可能还有其他)的图床网站服务的,使用了一个 http agent 代理请求忽略了证书错误。关掉就好了。
AllenHua
2022-09-03 17:08:20 +08:00
@muhahaha #10 这个开关,非必要别打开,打开是为了解决 certificate has expired 的问题,但是会降低 http 请求的效率,单个请求可能没什么,同时进行几十万个请求时时间上的差异是很明显的。
muhahaha
2022-09-03 17:21:22 +08:00
@AllenHua 感谢!确实是这个问题,目前已经解决!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/876776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX