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

https://github.com/zouzonghao/nodeimage_webdav_webui

IWlipTAmgGqNqWyhNKeyV8wPlFFOOxWF.webp

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