分享一个 NodeImage 备份到 webdav 工具
这个工具可以定时,将 NodeImage 图床的图片,备份到 webdav
https://github.com/zouzonghao/nodeimage_webdav_webui

注意必须套 https( 不然就不要设密码 ),否则无法登陆
version: '3.8'
services:
nodeimage_webdav_webui:
image: sanqi37/nodeimage_webdav_webui:latest
restart: unless-stopped
container_name: nodeimage_webdav_webui
environment:
# NodeImage 的 Cookie 和 API Key
- NODEIMAGE_COOKIE=your_nodeimage_cookie_here
- NODEIMAGE_API_KEY=your_nodeimage_api_key_here
# WebDav 的网址
- WEBDAV_URL=your_webdav_url_here
# WebDav 的用户名和密码
- WEBDAV_USERNAME=your_webdav_username_here
- WEBDAV_PASSWORD=your_webdav_password_here
# WebDav 的保存目录
- WEBDAV_FOLDER=/your/webdav/folder
# WebUI 的登录密码
- PASSWORD=your_secret_password_here
# 定时同步间隔,0 表示禁用定时同步(分钟)
- SYNC_INTERVAL=0
# --- 可选配置 ---
# - SYNC_CONCURRENCY=5
# - LOG_LEVEL=info
ports:
- "37372:37372"
坑 ①:
一开始是一个可执行文件,备份到本地
部署在 cf worker ,ip 不干净,NodeImage 禁止访问
部署在 vercel,ip 不干净
部署在 github action ,ip 不干净
部署在 claw run ,ip 不干净
最后只能是部署在自己的小鸡上了
坑 ②:
NodeImage 的官方 api,最多只能返回最近的 50 张图片的信息
只能通过 cookie 的方式,模拟 web 访问,利用 NodeImage 官网分页获取的接口,获取全部图片
坑 ③:
webdav 使用的是坚果云,每个月 1G 的免费上传,理论无限♾️空间
但是 webdav PROPFIND 方式限制最多返回 750 个文件
官方魔改分页,响应头有个 link 字段,里面是下一页的链接
做了一些优化,默认支持 zstd 压缩,webdav 图片列表默认缓存,减少访问次数