这个工具可以定时,将 NodeImage 图床的图片,备份到 webdav

【利用 坚果云,免费的 webdav】

注意必须套 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 图片列表默认缓存,减少访问次数