Files
chill_notes/AI工程/Rclone管理WebDAV笔记.md
2026-04-21 19:53:31 +08:00

332 lines
6.0 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Rclone 管理 WebDAV 笔记
> 使用 rclone 命令行工具管理 Obsidian WebDAV 服务器
---
## ✅ 实测成功!
**rclone 可以连接你的 WebDAV 服务器!**
---
## 安装 rclone
### Linux/macOS/Windows
```bash
# 下载最新版本
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
sudo mv rclone-*-linux-amd64/rclone /usr/local/bin/
sudo chmod +x /usr/local/bin/rclone
rm -rf rclone-*-linux-amd64*
# 验证安装
rclone --version
```
### Docker 环境(无需安装)
```bash
# 直接下载二进制文件
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
./rclone-v*-linux-amd64/rclone --version
```
---
## 配置 WebDAV 远程
### 1. 交互式配置
```bash
rclone config
# 步骤:
# n) 新建远程
# name: obsidian-webdav
# Storage: webdav
# URL: http://8.134.220.229:13803/实践积累
# vendor: other
# user: admin
# password: blackhill
```
### 2. 手动创建配置文件
```bash
mkdir -p ~/.config/rclone
cat > ~/.config/rclone/rclone.conf << 'EOF'
[obsidian-webdav]
type = webdav
url = http://8.134.220.229:13803/实践积累
vendor = other
user = admin
pass = blackhill
EOF
```
⚠️ **注意**:某些 WebDAV 服务器不支持 Digest 认证,需要用 Basic 认证。
### 3. 测试连接
```bash
# 列出所有文件
rclone ls obsidian-webdav: --max-depth 5
# 列出所有文件夹
rclone lsd obsidian-webdav:
```
---
## 常用命令
### 查看文件
```bash
# 列出根目录
rclone ls obsidian-webdav:
# 列出指定目录
rclone ls obsidian-webdav:AI工程
# 递归列出所有文件
rclone ls obsidian-webdav: --max-depth 10
# 按大小排序显示
rclone ls obsidian-webdav: --max-depth 1 | sort -k1 -n
```
### 上传文件
```bash
# 上传单个文件
rclone copy /path/to/file.md obsidian-webdav:目标文件夹/
# 上传整个目录
rclone copy /path/to/folder obsidian-webdav:目标文件夹/
# 示例:上传到 AI工程 文件夹
rclone copy ~/笔记/AI工程.md obsidian-webdav:AI工程/
```
### 下载文件
```bash
# 下载单个文件
rclone copy obsidian-webdav:AI工程/code-reviewer技能.md /tmp/
# 下载整个文件夹
rclone copy obsidian-webdav:AI工程 /tmp/ai-folder/
```
### 同步本地与远程
```bash
# 同步本地文件夹到 WebDAV单向
rclone sync /path/to/local obsidian-webdav:remote --progress
# 双向同步(需要小心使用)
rclone bisync /path/to/local obsidian-webdav:remote --progress
```
### 删除文件
```bash
# 删除远程文件
rclone delete obsidian-webdav:文件夹/文件名.md
# 删除空文件夹
rclone rmdir obsidian-webdav:空文件夹/
```
### 搜索文件
```bash
# 搜索文件名包含关键字的文件
rclone ls obsidian-webdav: | grep "关键字"
# 搜索多个关键词
rclone ls obsidian-webdav: | grep -E "关键词1|关键词2"
```
---
## 挂载为本地目录(可选)
将 WebDAV 挂载为本地文件夹,像操作本地文件一样使用。
### 需要 FUSE 支持
```bash
# Debian/Ubuntu 安装 fuse
sudo apt-get install fuse
# 检查 FUSE 可用
cat /proc/filesystems | grep fuse
```
### 挂载命令
```bash
# 创建挂载点
mkdir -p ~/obsidian-webdav
# 前台运行(测试用)
rclone mount obsidian-webdav: ~/obsidian-webdav --vv
# 后台运行
rclone mount obsidian-webdav: ~/obsidian-webdav \
--daemon \
--vfs-cache-mode writes \
--allow-other
# 查看挂载状态
df -h | grep obsidian
# 卸载
fusermount -uz ~/obsidian-webdav
```
### 开机自启systemd
```bash
cat > ~/.config/systemd/user/rclone-obsidian.service << 'EOF'
[Unit]
Description=rclone mount for Obsidian WebDAV
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/rclone mount obsidian-webdav: %h/obsidian-webdav \
--vfs-cache-mode writes \
--allow-other
ExecStop=/bin/fusermount -uz %h/obsidian-webdav
Restart=on-failure
[Install]
WantedBy=default.target
EOF
# 启用服务
systemctl --user enable rclone-obsidian.service
systemctl --user start rclone-obsidian.service
```
---
## 与 Obsidian Headless 配合使用
安装 rclone 后,可以配合 obsidian-headless 使用:
```bash
# 1. 挂载 WebDAV 为本地目录
rclone mount obsidian-webdav: ~/obsidian-webdav --daemon --vfs-cache-mode writes
# 2. 配置 obsidian-headless 使用该目录
echo "~/obsidian-webdav" > ~/.config/obsidian-headless/vault-path
# 3. 使用自然语言管理笔记
obs创建笔记 新想法
obs搜索笔记 关键字
obs列出所有
```
---
## 你的服务器配置
```
服务器: http://8.134.220.229:13803
路径: /实践积累
用户名: admin
密码: blackhill
```
---
## 常见问题
### Q: 连接返回 401 Unauthorized
**原因**:某些 WebDAV 服务器不支持 Digest 认证
**解决**在配置文件中使用明文密码rclone 会自动处理)
```
pass = blackhill # 不要加密
```
### Q: 文件名中文乱码
**解决**:确保终端编码为 UTF-8
```bash
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
```
### Q: 挂载后访问很慢
**解决**:使用 VFS 缓存模式
```bash
rclone mount obsidian-webdav: ~/obsidian-webdav \
--vfs-cache-mode writes \
--vfs-cache-max-age 168h \
--vfs-write-back 5s
```
### Q: 挂载占用大量内存
**解决**:限制缓存大小
```bash
rclone mount obsidian-webdav: ~/obsidian-webdav \
--vfs-cache-mode writes \
--buffer-size 256M
```
---
## 完整工作流示例
```bash
# 1. 配置远程
rclone config << 'EOF'
n
obsidian-webdav
webdav
http://8.134.220.229:13803/实践积累
other
admin
blackhill
y
EOF
# 2. 查看文件结构
rclone lsd obsidian-webdav:
# 3. 挂载为本地目录
mkdir -p ~/obsidian-webdav
rclone mount obsidian-webdav: ~/obsidian-webdav --daemon --vfs-cache-mode writes
# 4. 在 Obsidian 中直接使用
# 文件会自动同步到 WebDAV
# 5. 卸载
fusermount -uz ~/obsidian-webdav
```
---
## 参考链接
- [rclone 官网](https://rclone.org)
- [rclone WebDAV 配置](https://rclone.org/webdav/)
- [obsidian-headless GitHub](https://github.com/imakid/obsidian-headless)