爱意满满的作品展示区。
CalledKingsley

[分享创造] [开源] 用 Cloudflare Workers + R2 做了个轻量 WebDAV,支持个人自部署

  •  
  •   CalledKingsley · 4h 7m ago · 193 views

    最近想给自己搭一个随时能访问的 ,且 免费 的 WebDAV ,用来在手机和电脑之间同步一些文件以及同步一些小工具的配置文件,比如 cc-switch,clash 之类的。希望少维护一台服务器,也不想为低频的个人文件访问单独租机器,于是做了这个东东(在此疯狂感谢 cf 大善人,简直是赛博活菩萨):

    https://github.com/CallMeKingsley97/cf-free-webdav

    它用 Cloudflare Workers 处理 WebDAV 请求,用私有 R2 bucket 保存文件。当前支持 Basic Auth ,以及常用的文件和目录操作:

    • GET、HEAD、PUT
    • PROPFIND、MKCOL、DELETE
    • COPY、MOVE
    • 支持空目录和文件字节范围读取

    可以连接已有 GitHub 仓库部署到 Cloudflare Workers ,也可以用 Wrangler 从本地部署。部署后配置 WEBDAV_PASSWORD Secret ,再用任意 WebDAV 客户端连接 /dav/ 路径即可。具体步骤写在 README 里。

    目前是面向个人使用的早期版本,还不支持 LOCK / UNLOCK,自定义 WebDAV 属性也不会持久化;单次上传受 Cloudflare 请求体大小限制。Cloudflare 的免费额度适合个人低频使用,但额度和计费规则可能变化,超出后可能产生费用,所以千万注意不要被反薅了。

    如果你觉得这个项目有用,欢迎点个 Star 。也欢迎反馈你用的 WebDAV 客户端和遇到的问题,我会继续完善兼容性

    Hansah
        1
    Hansah  
       2h 54m ago
    不能持久的 webdav 读写吧
    CalledKingsley
        2
    CalledKingsley  
    OP
       2h 8m ago
    @Hansah 可以持久读写。Worker 本身是无状态的,不负责长期保存文件;它只处理 WebDAV 请求。实际文件会写入 Cloudflare R2 ,PUT 上传到 R2 ,GET 再从 R2 读取,所以 Worker 重启或重新部署不会清掉文件
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2393 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:32 · PVG 23:32 · LAX 08:32 · JFK 11:32
    ♥ Do have faith in what you're doing.