通过 Rclone + WinFsp + WinSW 实现 Cloudflare-R2 高效云存储本地化挂载

🧰 准备工作

你需要以下三个组件:

软件工具 作用说明 获取方式
Rclone 云存储访问工具,支持挂载、同步、上传等功能 rclone.org
WinFsp Windows 文件系统支持库,用于实现虚拟磁盘挂载 winfsp.dev
**WinSW ** 将挂载命令注册为 Windows 服务,实现后台运行和日志管理 GitHub

确保你已安装最新版,WinSW 使用的是 v3 版本

💡 安装步骤(适用于 Win11)

下载 Rclone

解压并放置

  • 解压下载的压缩包

  • 将其中的 rclone.exe 放到你喜欢的位置,例如:

  • C:\Program Files\rclone\

  • 或者直接放在某个项目目录下

添加到系统环境变量(推荐)

这样你可以在任何命令行窗口中直接运行 rclone

  1. 右键“此电脑” → 属性 → 高级系统设置 → 环境变量
  2. 在“系统变量”中找到 Path → 编辑
  3. 添加 rclone.exe 所在的文件夹路径(不是文件本身)

验证安装

打开命令提示符(Win + R → 输入 cmd)运行:

1
rclone version

如果显示版本号,说明安装成功

✅ 安装 WinFsp

Rclone 挂载功能依赖 WinFsp,安装最新版后继续下一步。

⚙️ 配置 Rclone 远程连接

🧭 方法一:使用 rclone config 命令交互式配置

  1. 打开命令提示符,输入:

    1
    rclone config
  2. 按提示创建新远程(例如命名为 r2mount

  3. 选择类型为 Amazon S3

  4. 选择 providerCloudflare

  5. 输入你的 Access Key ID

  6. 然后输入你的 Secret Access Key(这就是你说的“机密访问密钥”)

  7. 设置 endpointhttps://你的 Cloudflare R2 账户ID.r2.cloudflarestorage.com

  8. 完成后保存配置即可

测试挂载是否成功

1
rclone mount r2mount:你的 Cloudflare R2 存储桶名称 S: --vfs-cache-mode full

S: 是你要挂载到本地的盘符,可以改成你想显示的盘符,如:G

🧩 方法二:创建一键挂载脚本模板(Rclone-mount.cmd):

脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
set REMOTE_NAME=r2mount
set BUCKET_NAME=my-bucket-name :: ← 替换为你的 Cloudflare R2 存储桶名称
set DRIVE_LETTER=S:
set ACCESS_KEY=你的访问密钥 ID
set SECRET_KEY=你的机密访问密钥
set ACCOUNT_ID=你的 Cloudflare R2 账户 ID
set ENDPOINT=https://你的 Cloudflare R2 账户 ID.r2.cloudflarestorage.com

:: 创建 rclone 配置目录(如果不存在)
if not exist "%USERPROFILE%\.config\rclone" (
mkdir "%USERPROFILE%\.config\rclone"
)

:: 创建配置文件
echo [%REMOTE_NAME%] > "%USERPROFILE%\.config\rclone\rclone.conf"
echo type = s3 >> "%USERPROFILE%\.config\rclone\rclone.conf"
echo provider = Cloudflare >> "%USERPROFILE%\.config\rclone\rclone.conf"
echo access_key_id = %ACCESS_KEY% >> "%USERPROFILE%\.config\rclone\rclone.conf"
echo secret_access_key = %SECRET_KEY% >> "%USERPROFILE%\.config\rclone\rclone.conf"
echo endpoint = %ENDPOINT% >> "%USERPROFILE%\.config\rclone\rclone.conf"
echo acl = private >> "%USERPROFILE%\.config\rclone\rclone.conf"

:: 执行挂载
rclone mount %REMOTE_NAME%:%BUCKET_NAME% %DRIVE_LETTER% --vfs-cache-mode full
使用方法
  1. 将上述内容保存为 r2-mount.cmd 文件。
  2. 替换以下字段为你的真实信息:
    • 你的 Cloudflare R2 账户 ID → Cloudflare R2 的账户 ID
    • my-bucket-name → 你创建的 Cloudflare R2 存储桶名称
  3. 双击运行(建议以管理员身份运行)。
  4. 打开文件资源管理器,查看你指定的盘符(如 S:),Cloudflare R2 就像本地磁盘一样用了!

⚠️ 前提是你已安装好 RcloneWinFsp

🧩 使用 WinSW 创建 XML 服务

下载 WinSW(GitHub

  • 例如下载 WinSW-x64.exe,改名为 rclone-mount.exe

建立 WinSW 服务配置 XML 文件

XML文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<service>
<id>RcloneMount</id>
<name>Rclone Mount Cloudflare R2</name>
<description>将 Cloudflare R2 存储桶挂载为本地磁盘 S:,通过 Rclone 后台运行</description>

<executable>C:\rclone\rclone.exe</executable>
<arguments>mount r2mount:你的 Cloudflare R2 存储桶名称 S: --vfs-cache-mode full --no-console --config "C:\Users\sky\.config\rclone\rclone.conf"</arguments>

<logpath>%BASE%</logpath>
<log mode="roll-by-size">
<sizeThreshold>5242880</sizeThreshold>
<keepFiles>5</keepFiles>
</log>

<onfailure action="restart" delay="5000"/>
<workingdirectory>E:\rclone</workingdirectory>
<stopTimeout>5000</stopTimeout>
<keepAlive>true</keepAlive>
</service>
使用方法
  1. 将上述内容保存为 rclone-mount.xml(文件名前缀需与 rclone-mount.exe 相同)
  2. rclone-mount.exerclone-mount.xml 放在同一目录下
  3. 打开 PowerShell(管理员)运行:
1
2
.\rclone-mount.exe install
.\rclone-mount.exe start

安装成功后服务将自动运行、后台挂载,日志保存在本地 logs 文件夹内

WinSW 会后台挂载 Cloudflare R2 到 S: 盘,并维持服务运行,断电/重启后也会自动启动。

💡 WinSW 常用命令:

1
2
3
4
5
.\rclone-mount.exe uninstall          :: ← 卸载服务
.\rclone-mount.exe install :: ← 安装服务
.\rclone-mount.exe start :: ← 启动服务
.\rclone-mount.exe stop :: ← 停止服务
.\rclone-mount.exe restart :: ← 重启服务

📚 总结

  • ✅ 使用 Rclone + Cloudflare R2 实现本地盘挂载
  • ✅ WinFsp 提供文件系统支持,确保虚拟盘访问稳定
  • ✅ WinSW 实现后台运行、日志记录和自动重启
  • ✅ 配合自定义 XML 可灵活控制挂载行为
  • 🧩 可扩展为多个桶挂载、多用户配置、定时同步等方案

参考链接