Update from Sync Service

This commit is contained in:
FNS Service
2026-04-21 19:53:31 +08:00
parent b1ebaef66a
commit 161d28f7ca
2 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,331 @@
# 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)

226
AI工程/WebDAV挂载指南.md Executable file
View File

@@ -0,0 +1,226 @@
# WebDAV 挂载到 Linux 本地目录
将远程 WebDAV 服务器(如 Obsidian/Synology NAS挂载为本地文件夹像操作本地文件一样管理。
---
## 方法一davfs2推荐最稳定
### 1. 安装 davfs2
```bash
# Debian/Ubuntu
sudo apt-get install davfs2
# CentOS/RHEL
sudo yum install davfs2
# macOS
brew install davfs2
```
### 2. 挂载 WebDAV
```bash
# 创建挂载点
sudo mkdir -p /mnt/webdav
# 挂载(需要输入用户名密码)
sudo mount -t davfs http://your-server:port/path /mnt/webdav
# 或者指定用户名
sudo mount -t davfs -o username=admin http://your-server:port/path /mnt/webdav
```
### 3. 开机自动挂载
```bash
# 添加到 /etc/fstab
echo "http://your-server:port/path /mnt/webdav davfs defaults,username=admin,password=yourpass 0 0" | sudo tee -a /etc/fstab
# 或者保存密码到文件(更安全)
echo "yourpass" | sudo tee /etc/davfs2/secrets
chmod 600 /etc/davfs2/secrets
echo "/mnt/webdav username password" | sudo tee -a /etc/davfs2/secrets
```
---
## 方法二rclone支持云存储适合 Docker 环境)
### 1. 安装 rclone
```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 chown root:root /usr/local/bin/rclone
sudo chmod 755 /usr/local/bin/rclone
rm -rf rclone-*-linux-amd64 rclone-current-linux-amd64.zip
```
### 2. 配置 rclone
```bash
# 交互式配置
rclone config
# 选择 n 新建配置
# 输入名称obsidian-webdav
# 类型选择webdav
# URLhttps://your-server:port/path
# vendorother
# 输入用户名密码
```
### 3. 挂载为本地目录
```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
# 开机自启systemd
cat > ~/.config/systemd/user/rclone-obsidian.service << 'EOF'
[Unit]
Description=rclone mount for Obsidian
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/rclone mount obsidian-webdav: %h/obsidian-webdav --vfs-cache-mode writes
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
```
---
## 方法三fUSE + davfs2用户空间挂载无需 root
### 1. 安装 fuse 和 davfs2
```bash
sudo apt-get install fuse davfs2
```
### 2. 配置非 root 用户使用 FUSE
```bash
sudo usermod -a -G fuse $USER
# 重新登录生效
```
### 3. 挂载
```bash
mkdir -p ~/webdav
fusedav https://your-server:port/path -u username -p password ~/webdav
```
---
## 方法四curlftpsFTP over HTTPS需要 FUSE
```bash
# 安装
sudo apt-get install curlftpfs
# 挂载
sudo curlftpfs -o allow_other,user=username:password https://your-server/path /mnt/webdav
```
---
## 方法五:直接在代码中使用 WebDAV
### Python 示例
```python
import webdav3.client as wc
options = {
'webdav_hostname': "https://your-server:port/path",
'webdav_login': "username",
'webdav_password': "password"
}
client = wc.Client(options)
# 列出文件
print(client.list())
# 下载文件
client.download_sync(remote_path="file.md", local_path="file.md")
# 上传文件
client.upload_sync(local_path="new.md", remote_path="new.md")
```
### 安装 webdav3
```bash
pip install webdav3
```
---
## 你的服务器信息
```
服务器: http://8.134.220.229:13803
用户名: admin
密码: blackhill
路径: /实践积累
```
---
## 快速测试命令
```bash
# 测试连接curl
curl -s --digest --user admin:blackhill \
"http://8.134.220.229:13803/实践积累/" | head -20
# 列出文件
curl -s --digest --user admin:blackhill \
-X PROPFIND "http://8.134.220.229:13803/实践积累/" -H "Depth: 1" | \
grep -oE '<d:href>[^<]+</d:href>' | head -10
```
---
## 常见问题
### Q: 挂载后文件看不到?
- 检查网络连接
- 确认用户名密码正确
- 查看日志:`dmesg | tail`
### Q: 写入慢或失败?
- davfs2 有缓存,可能有延迟
- 尝试增加缓存大小
- 检查服务器端是否有写入权限限制
### Q: Docker 容器内无法挂载?
- Docker 需要 `--privileged` 模式
- 或者使用 rclone 的 `--allow-non-empty`
### Q: 开机自启失败?
- 检查 systemd 服务配置
- 确保网络在挂载前已就绪(添加 `After=network.target`