[自建图床解决方案分享] lsky + 阿里云盘 + webdav - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nihaorz
V2EX    分享发现

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

  •  
  •   nihaorz 2022-08-31 17:17:45 +08:00 3949 次点击
    这是一个创建于 1145 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    • 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 、最后收获凌晨两点睡觉

    13 条回复    2022-09-03 17:21:22 +08:00
    wonderfulcxm
        1
    wonderfulcxm  
       2022-08-31 17:20:20 +08:00 via iPhone
    lsky-pro-docker 的 arm 镜像可以分享一下吗?我也想在 n1 上整一套
    AllenHua
        2
    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
        3
    nihaorz  
    OP
       2022-08-31 17:25:04 +08:00
    @wonderfulcxm
    docker pull wangrui027/lsky-pro ,我这个是 arm64 架构的镜像,你看一下 n1 跑不跑的起来,跑不起来我再加几个低版本的 arm 架构镜像( github actions 构建镜像比较慢,可能内容比较多吧,所以我只构建了 x86 和 arm64 架构)
    AllenHua
        4
    AllenHua  
       2022-08-31 17:26:15 +08:00
    @wonderfulcxm #1 我的 N1 上也跑着一个 lsky pro ,建议安装 mysql 8 了,我的原文还是拿 5.7 举例的。
    nihaorz
        5
    nihaorz  
    OP
       2022-08-31 17:26:33 +08:00
    @AllenHua 我用的就是你这个插件,感谢大佬的辛苦劳动啊
    AllenHua
    6
    AllenHua  
       2022-08-31 17:29:30 +08:00
    @nihaorz #5 不客气不客气。我也是受益者。

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

    ![6151888189e7c32a8e42529941b56b5f.jpg]( https://img.gejiba.com/images/6151888189e7c32a8e42529941b56b5f.jpg)
    nihaorz
        7
    nihaorz  
    OP
       2022-08-31 17:36:11 +08:00   1
    @AllenHua 收到,可以愉快的玩耍了
    muhahaha
        8
    muhahaha  
       2022-09-03 15:45:05 +08:00
    @AllenHua 感谢大佬写的插件!不知道能否提个需求,就是可以不可以支持 http 的接口连接?
    AllenHua
        9
    AllenHua  
       2022-09-03 16:05:14 +08:00
    @muhahaha #8 我的图床也是搭建在内网的,Server 那里使用内网的 http 形式的 ip + port ,也是能成功上传的啊。不太清楚你的具体需求是什么,http 的接口连接?不就是 http://192.168.2.178:7791 这样子么
    muhahaha
        10
    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
        11
    AllenHua  
       2022-09-03 17:05:14 +08:00
    @muhahaha #10 你把 ignore certificate error 关掉试试看,我刚试了下打开时遇到了同样错误。这个开关是给 letsencrypt 有效期只有三个月的证书(可能还有其他)的图床网站服务的,使用了一个 http agent 代理请求忽略了证书错误。关掉就好了。
    AllenHua
        12
    AllenHua  
       2022-09-03 17:08:20 +08:00
    @muhahaha #10 这个开关,非必要别打开,打开是为了解决 certificate has expired 的问题,但是会降低 http 请求的效率,单个请求可能没什么,同时进行几十万个请求时时间上的差异是很明显的。
    muhahaha
        13
    muhahaha  
       2022-09-03 17:21:22 +08:00   1
    @AllenHua 感谢!确实是这个问题,目前已经解决!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1710 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 16:14 PVG 00:14 LAX 09:14 JFK 12:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86