diff --git a/个人文档/Windows挂载oss.md b/个人文档/Windows挂载oss.md new file mode 100644 index 0000000..c08914c --- /dev/null +++ b/个人文档/Windows挂载oss.md @@ -0,0 +1,131 @@ +# 在 Windows 上将 OSS 存储挂载为本地磁盘 + +--- + +## 1. 准备工作 + +### 1.1 安装 WinFsp +WinFsp 是 Windows 上的文件系统代理,`rclone` 依赖它实现挂载功能。 + + +### 1.2 安装 rclone +- 解压到目录,例如 `C:\rclone` +- (可选)将 `C:\rclone` 添加到系统 PATH 环境变量,方便在任何路径下调用 `rclone` 命令。 + +--- + +## 2. 配置 rclone 连接 OSS + +### 2.1 创建配置文件 +`rclone` 的配置文件默认位于: +``` +C:\Users\<你的用户名>\AppData\Roaming\rclone\rclone.conf +``` +如果该文件或目录不存在,请手动创建。 + +### 2.2 编辑配置文件 +在 `rclone.conf` 中添加以下内容,将占位符替换为您的实际信息: + +```ini +[oss] +type = s3 +provider = Minio +access_key_id = YOUR_ACCESS_KEY(可空) +secret_access_key = YOUR_SECRET_KEY(可空) +endpoint = http://192.168.1.237:9000 +region = us-east-1 +``` + +> **说明**: +> - `[oss]` 是配置名称,挂载时会用到。 + + +--- + +## 3. 手动挂载测试 + +打开 **命令提示符 (cmd)**,切换到 `rclone.exe` 所在目录(若已添加 PATH 则直接执行): + +```cmd +cd C:\rclone +``` + +执行挂载命令(将 `share` 替换为您的存储桶名称,`F:` 替换为您希望使用的盘符): + +```cmd +rclone.exe mount oss:/share F: +``` + +**参数说明**: +- `oss:/share`:`oss` 是配置名,`share` 是桶名。 +- `F:`:要挂载的盘符。 + +挂载成功后,打开“此电脑”即可看到 `F:` 盘,可像本地硬盘一样读写。 + +**注意**:该 cmd 窗口一旦关闭,挂载就会中断。因此需要后台运行。 + +--- + +## 4. 使用 VBS 脚本实现后台无窗口挂载 + +创建一个 VBS 脚本,让 `rclone` 在完全后台运行(无命令行窗口)。 + +### 4.1 创建脚本文件 + +在桌面或任意文件夹,新建一个文本文件,命名为 **`MountOSS.vbs`**(注意扩展名是 `.vbs`,不是 `.txt`)。 + +### 4.2 编辑脚本内容 + +用记事本打开 `MountOSS.vbs`,粘贴以下内容,并根据您的实际环境修改相关路径和参数: + +```vbscript +Set WshShell = CreateObject("WScript.Shell") + +' 请修改以下命令中的路径、配置名、桶名、盘符和参数 +cmd = "C:\rclone\rclone.exe mount oss:/share F:" + +' 0 表示隐藏窗口,False 表示不等待程序结束 +WshShell.Run cmd, 0, False +``` + +> **注意**: +> - 如果 `rclone.exe` 路径包含空格,请用双引号包裹整个路径,例如: +> `cmd = """C:\Program Files\rclone\rclone.exe"" mount minio:/share F: ..."` + +### 4.3 运行脚本 + +双击 `MountOSS.vbs`,此时不会有任何窗口出现,但 `rclone` 已经在后台运行,`F:` 盘会被挂载。 + +您可以在任务管理器的“详细信息”中看到 `rclone.exe` 进程。 + +--- + +## 5. 如何关闭后台挂载 + +当需要卸载虚拟盘符并结束 `rclone` 进程时 + +### 5.1 使用任务管理器(最简单) + +1. 按 `Ctrl + Shift + Esc` 打开任务管理器。 +2. 切换到“详细信息”选项卡。 +3. 找到 `rclone.exe` 进程,右键 → “结束任务”。 +4. 挂载的盘符(如 `F:`)会自动消失。 + +### 5.2 重启电脑 + +终极方案,一般不需要。 + +--- + +## 6. 开机自动后台挂载(可选) + +如果您希望每次开机时自动挂载,可以将 `MountOSS.vbs` 脚本添加到“启动”文件夹: + +1. 按 `Win + R`,输入 `shell:startup`,打开启动文件夹。 +2. 将 `MountOSS.vbs` 的快捷方式复制到该文件夹中。 + +下次登录时,脚本会自动运行,后台挂载您的对象存储。 + +> **注意**:如果 `rclone` 需要访问网络驱动器或需要特定权限,请确保脚本以适当的用户权限运行(可设置为“以管理员身份运行”的快捷方式)。 + +--- \ No newline at end of file diff --git a/个人文档/rclone挂载s3.md b/个人文档/rclone挂载s3.md index d92a349..013f2fc 100644 --- a/个人文档/rclone挂载s3.md +++ b/个人文档/rclone挂载s3.md @@ -23,7 +23,7 @@ # 启用 CRB 仓库(CentOS 9 需要) sudo dnf config-manager --set-enabled crb # 安装 rclone 和 fuse -sudo dnf install -y rclone fuse fuse-devel +sudo dnf install -y rclone fuse fuse-devel fuse3 ``` ### 2.2 加载 fuse 内核模块并启用 user_allow_other @@ -220,65 +220,7 @@ mount | grep rclone --- -## 10. 常见问题与解决 - -### 10.1 挂载后 `ls` 为空或 `Transport endpoint is not connected` - -**原因**:缓存目录权限问题或网络断开。 - -**解决**: -```bash -# 重启对应服务 -sudo systemctl restart rclone-mount@orderbook -# 或清理缓存(若使用默认缓存 /root/.cache/rclone) -rm -rf /root/.cache/rclone/vfs/oss/orderbook -``` - -### 10.2 服务启动失败,日志显示 `fuse: device not found` - -**解决**:加载 fuse 模块并设置开机加载: -```bash -sudo modprobe fuse -echo fuse | sudo tee /etc/modules-load.d/fuse.conf -``` - -### 10.3 `allow_other` 不生效 - -**解决**:检查 `/etc/fuse.conf` 是否包含 `user_allow_other` 且未注释,修改后无需重启服务,重新挂载即可。 - -### 10.4 开机后挂载未自动拉起 - -**原因**:网络依赖未完全满足。 - -**解决**:确认服务文件中已包含 `After=network-online.target` 和 `Wants=network-online.target`。若仍有问题,可添加延时: -```ini -ExecStartPre=/bin/sleep 5 -``` - -### 10.5 如何调整缓存目录或 VFS 模式? - -编辑 `/etc/systemd/system/rclone-mount@.service`,修改 `ExecStart` 中的参数,例如: -```bash ---cache-dir=/tmp/rclone-cache \ ---vfs-cache-mode=writes -``` -修改后执行: -```bash -sudo systemctl daemon-reload -sudo systemctl restart rclone-mount@your-bucket -``` - ---- - -## 11. 备份与恢复建议 - -- **备份 rclone 配置**:`cp /root/.config/rclone/rclone.conf /safe/location` -- **备份 systemd 模板**:`cp /etc/systemd/system/rclone-mount@.service /safe/location` -- 重装系统后,只需恢复这两个文件,重新 `systemctl enable` 即可。 - ---- - -## 12. 总结 +## 10. 总结 通过 systemd 模板单元管理 MinIO 桶挂载,具有以下优点: