3条curl命令搞定Dufs文件操作API:删除、复制与移动
2026/8/24 9:28:05 网站建设 项目流程

3条curl命令搞定Dufs文件操作API:删除、复制与移动

【免费下载链接】dufsA file server that supports static serving, uploading, searching, accessing control, webdav...项目地址: https://gitcode.com/gh_mirrors/du/dufs

Dufs 是一个用 Rust 编写的文件服务器,一条命令就能把本地任意目录变成可网页管理的文件服务。本文聚焦它的删除、复制、移动三个文件操作接口,读完你能直接用 curl 管理远程机器上的文件,不必登机器,也不必先下载再上传。

什么情况下用得上

  • 当你需要清理服务器上早已过期的临时文件,但机器没有图形界面、控制台又在很远的机房时
  • 当你想拿一份文件做备份副本用于实验,不想"下载—修改—再上传"这一圈时
  • 当你要把根目录下某子目录里的散落文件归位到别的子目录,且希望全程走 HTTP 时

开始之前

  1. 安装 dufs 并以写权限启动,指向你要管理的目录(--allow-all一键打开上传、删除等全部写操作):
dufs --allow-all /path/to/dir
  1. 生产环境建议按最小权限拆开:只删文件就加--allow-delete,只复制就加--allow-upload
  2. 本机装有 curl 即可,多数系统自带

🗑️ 一条curl的DELETE命令删除文件或目录

删除是最简单的操作:对目标路径发一个 DELETE 请求,文件或整个目录都能删。

curl -X DELETE http://127.0.0.1:5000/tmp/old_logs
  • 成功返回 204 No Content(无响应体,属正常现象);未开--allow-delete时会收到 403
  • 目录删除是递归的且没有二次确认,动手前先确认路径指向哪里

实现见 源码。

📋 用COPY方法复制文件且保留原件

复制走 WebDAV 的 COPY 方法,目标位置写在Destination请求头里,不需要 body。

curl -X COPY http://127.0.0.1:5000/report.xlsx \ -H "Destination: http://127.0.0.1:5000/backup/report.xlsx"
  • Destination必须是完整 URL 且落在根目录内,否则返回 400;目标父目录会自动创建
  • 只支持复制文件,对目录发 COPY 会收到 403

实现见 源码。

🚚 用MOVE方法把文件跨目录移动

移动对应 MOVE 方法,本质是操作系统的 rename,同一文件系统内几乎瞬间完成,不额外占磁盘空间。

curl -X MOVE http://127.0.0.1:5000/inbox/a.zip \ -H "Destination: http://127.0.0.1:5000/archive/a.zip"
  • 权限要求最高:--allow-upload--allow-delete必须同时开启,缺一即 403
  • 跨不同磁盘分区(不同文件系统)时 rename 会失败,可先 COPY 再 DELETE 代替

实现见 源码。

避坑与最佳实践

  • 收到 403 Forbidden:原因是 dufs 默认只读,启动时没开对应权限。解决办法:补上--allow-delete/--allow-upload并重启进程
  • 收到 400 "Invalid Destination":原因多为 Destination 写成了相对路径或指向了根目录之外。解决办法:改成以http://127.0.0.1:5000/开头的完整 URL
  • 返回 204 却"看不到结果":204 本来就没有响应体,别以为失败了。用 GET 或浏览器打开目标目录确认即可
  • 大批量复制效率低:COPY 不支持目录且一次只搬一个文件。批量场景建议接 rclone 等 WebDAV 客户端操作同一服务
  • 权限别图省事:只删文件就不要用--allow-all,用--allow-delete限定操作面

落地建议

  • 定时备份:在 crontab 里跑一条 COPY 命令,每天把关键文件复制到 /backup 目录,再用 DELETE 清掉超过一个月的旧副本
  • 文件归档:建一个 inbox 目录收临时文件,每周用 MOVE 按项目分目录归位,避免反复下载上传
  • 部署更新:新版文件先上传到 /staging,用 COPY 复制到运行目录,确认无误后再 DELETE 清掉旧版本

总结

删除、复制、移动这三条命令,配合启动参数控制权限,就覆盖了远程文件管理的大部分日常需求。不妨先在本地测试目录开--allow-all把流程跑通,再收紧权限上线使用。

【免费下载链接】dufsA file server that supports static serving, uploading, searching, accessing control, webdav...项目地址: https://gitcode.com/gh_mirrors/du/dufs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询