{"id":15715556,"url":"https://github.com/aigem/cfr2-webdav","last_synced_at":"2025-04-09T16:09:17.030Z","repository":{"id":256412531,"uuid":"855215925","full_name":"aigem/CFr2-webdav","owner":"aigem","description":"使用 Cloudflare Workers 和 R2 实现了一个兼容 WebDAV 的服务器","archived":false,"fork":false,"pushed_at":"2024-09-20T16:36:24.000Z","size":270,"stargazers_count":92,"open_issues_count":9,"forks_count":173,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T16:09:10.644Z","etag":null,"topics":["cloudflare","cloudflare-workers","free","javascript","r2","s3","s3-bucket","typescript","webdav","webdav-client","webdav-server"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aigem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-10T14:08:27.000Z","updated_at":"2025-04-08T06:46:07.000Z","dependencies_parsed_at":"2024-09-10T15:54:18.501Z","dependency_job_id":"9ef592c1-f50a-488b-abe7-91d433d244bf","html_url":"https://github.com/aigem/CFr2-webdav","commit_stats":null,"previous_names":["aigem/r2-webdav-s3"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aigem%2FCFr2-webdav","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aigem%2FCFr2-webdav/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aigem%2FCFr2-webdav/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aigem%2FCFr2-webdav/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aigem","download_url":"https://codeload.github.com/aigem/CFr2-webdav/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248065283,"owners_count":21041871,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare","cloudflare-workers","free","javascript","r2","s3","s3-bucket","typescript","webdav","webdav-client","webdav-server"],"created_at":"2024-10-03T21:42:00.429Z","updated_at":"2025-04-09T16:09:17.003Z","avatar_url":"https://github.com/aigem.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cloudflare R2 WebDAV Server\n\n这个项目实现了一个基于 Cloudflare Workers 和 R2 存储的 WebDAV 服务器。它允许用户通过 WebDAV 协议访问和管理存储在 Cloudflare R2 中的文件和目录。\n\n[R2免费额度](https://developers.cloudflare.com/r2/pricing/)  [视频教程](https://www.bilibili.com/video/BV1mh4peNECe/)\n\n![部署Cloudflare R2 WebDAV服务，超简单拥有自己的私人网盘](https://raw.githubusercontent.com/aigem/CFr2-webdav/main/%E5%85%8D%E8%B4%B9%E4%B8%80%E9%94%AE%E9%83%A8%E7%BD%B2Cloudflare%20R2%20WebDAV%E6%9C%8D%E5%8A%A1%EF%BC%8C%E8%B6%85%E7%AE%80%E5%8D%95%E6%8B%A5%E6%9C%89%E8%87%AA%E5%B7%B1%E7%9A%84%E7%A7%81%E4%BA%BA%E7%BD%91%E7%9B%98-%E5%B0%81%E9%9D%A2.jpg)\n\n\n## 特性\n\n- 完全兼容 WebDAV 协议\n- 基于 Cloudflare Workers，无需管理服务器\n- 使用 Cloudflare R2 作为存储后端（免费额度慷慨）\n- 支持基本的身份验证\n- 支持文件上传、下载、删除、移动和复制操作\n- 支持目录创建和列表\n\n## 一键部署到 Cloudflare Workers\n\n点击下面的按钮，一键将此项目部署到您的Cloudflare Workers账户：\n\n[![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/aigem/CFr2-webdav)\n\n注需要有Cloudflare账户才能使用此功能。如果您还没有账户，可以在[Cloudflare官www.cloudflare.com)注册。\n\n## 手动部署步骤 [Githut Actions]\n\n如果您需要自定义配置或想要深入了解部署流程，请按以下步骤操作：\n\n### 前提条件\n\n- Cloudflare 账户\n- 已创建的 R2 存储桶\n- GitHub 账户\n\n### 步骤 1: 配置 Cloudflare\n\n1. 【获取API令牌】在 Cloudflare 仪表板中，创建一个新的 API 令牌，确保它有足够的权限来管理编辑Workers(和 R2)。\n2. 【获取桶名称】创建的 R2 存储桶\n\n### 步骤 2: 准备仓库\n\nFork 这个仓库到您的 GitHub 账户。\n```\nhttps://github.com/aigem/CFr2-webdav\n```\n\n### 步骤 3: 配置 GitHub Secrets\n\n在您的 GitHub 仓库中，转到 Settings -\u003e Secrets and variables -\u003e Actions，添加以下 secrets：\n\n- `CLOUDFLARE_API_TOKEN`: 步骤1的 Cloudflare API 令牌 (必须)\n- `USERNAME`: WebDAV 服务器的用户名 （可选，默认为 _user）\n- `PASSWORD`: WebDAV 服务器的密码 （可选，默认为 _pass）\n- `BUCKET_NAME`: 的 R2 存储桶名称 （可选，默认为 bucket 如果与你实际的bucket不符，则GithubAction部署会失败）\n\n### 步骤 4: 配置 GitHub Actions\n\n1. 在您的 GitHub 仓库设置中，启用 GitHub Actions。\n2. workflow 文件已经存在，请选择： .github/workflow/main.yml\n\n### 步骤 6: 触发部署\n\n按上面操作完成后就会自动进行部署到CF Worker中，或将任何更改推送到 GitHub 仓库的 `main` 分支，或者手动运行 GitHub Actions 工作流。GitHub Actions 将自动触发部署流程。\n\n您可以在 GitHub 仓库的 Actions 标签页中查看部署进度。部署成功后，您可以在 Cloudflare Workers 仪表板中找到您的 Worker URL。\n\n## 使用方法\n\n使用任何支持 WebDAV 协议的客到您的 Worker URL，使用配置的用户名和密码进行身份验证。\n\n\n## 本地开发（可选）\n\n如果您需要在本地进行开发和测试，请按以下步骤操作：\n\n0. 同上面步骤1 ：配置 Cloudflare\n\n1. 克隆仓库到本地：\n   ```bash\n   git clone https://github.com/aigem/CFr2-webdav.git\n   cd cf-r2-webdav\n   ```\n\n2. 安装依赖：\n   ```bash\n   npm install\n   ```\n\n3. 修改wrangler.toml.template为wrangler.toml文件，并修改为你的实际参数：\n  \n4. 使用 Wrangler 进行本地开发：\n   ```bash\n   npx wrangler dev --local\n   ```\n\n注意：本地开发可能无法完全模拟 Cloudflare Workers 环境，特别是 R2 存储的操作。\n\n## 注意事项\n\n- 确保妥善保管您的 API 令牌和其他敏感信息。\n- 定期更新您的依赖以确保安全性。\n- 遵守 Cloudflare 的使用政策和条款。\n\n## 贡献\n\n欢迎提交 Pull Requests 或创建 Issues 来改进这个项目。\n\n## 许可证\n\n本项目采用 MIT 许可证。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faigem%2Fcfr2-webdav","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faigem%2Fcfr2-webdav","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faigem%2Fcfr2-webdav/lists"}