Mac Mini打造外网可访问的S3&WebDAV存储
利用域名和闲置的Mac Mini实现云存储
type
Post
status
Published
date
Mar 2, 2026
slug
s3
summary
利用域名和闲置的Mac Mini实现云存储
tags
工具
category
技术分享
icon
password
对于研究者而言,拥有一个大容量、高可用且外网可随时访问的数据中转站至关重要。本文将详细介绍如何利用闲置的 Mac mini,通过纯原生方式部署 MinIO(S3 兼容存储)和 Rclone(转换为 WebDAV),并结合 Cloudflare Tunnel 实现免公网 IP 的安全域名访问。整个方案资源占用极低,且能完美绕过 Cloudflare 免费版的单次 100MB 上传限制。
零、 基础环境与网络准备
1. 禁用 Mac mini 休眠
为保证服务器 24 小时在线,需彻底关闭休眠机制:
2. 开启 SSH 访问
进入
系统设置 > 通用 > 共享,打开 远程登录 开关,以便后续无头(Headless)管理。一、 原生部署 MinIO (S3 兼容存储)
相比 Docker 虚拟机,原生安装能最大化压榨 Mac 的读写性能。
1. 安装与目录准备
2. 配置环境变量
创建一个环境变量文件来存储账号密码和公网域名(假设您之后打算绑定的域名为
s3.yourdomain.com 和 console.yourdomain.com):⚠️ 注意:
MINIO_ROOT_PASSWORD 必须至少 8 位,否则服务无法启动。3. 配置开机自启 (Launchd)
创建 macOS 原生的 LaunchAgent 服务文件。首先使用
whoami 查看您的系统用户名(例如 rubo)。新建并编辑配置文件:
粘贴以下内容(务必将所有的
rubo 替换为您真实的用户名):保存后,加载并启动服务:
此时 MinIO 已经在本地的 9000 (API) 和 9001 (Web 控制台) 端口运行了。
二、 部署 Rclone (将 S3 桥接为 WebDAV)
许多文献管理软件(如 Zotero)只支持 WebDAV,我们可以用 Rclone 在本地将 S3 实时映射为 WebDAV 服务。
1. 安装与配置 Rclone
运行
rclone config,按以下交互指引配置本地 MinIO 节点:- 按
n新建 remote,命名为myminio
- Storage 选
s3
- Provider 选
Minio
env_auth选false
access_key_id填您上面设置的admin_ai_research
secret_access_key填YourStrongPassword123
region填us-east-1
endpoint填http://127.0.0.1:9000(内网通信,填本地地址)
- 其余选项一路回车默认,最后按
y保存并q退出。
2. 配置 WebDAV 开机自启
创建日志目录:
新建 plist 服务文件:
粘贴以下内容(注意替换
rubo 为您的用户名,并自定义 WebDAV 的独立账号 davuser 和密码 davpass123):加载并启动服务:
现在 WebDAV 运行在本地的 8080 端口。
三、 配置 Cloudflare Tunnel (公网域名访问)
通过零信任隧道,无需公网 IP 即可安全暴露服务。
1. 安装并授权 Tunnel
在 Mac mini 终端安装 cloudflared:
登录 Cloudflare Zero Trust,在
Networks > Tunnels 点击 Create a tunnel。
选择 Cloudflared,选择 Mac 操作系统,复制并执行控制台提供的以 sudo cloudflared service install... 开头的长命令。
随后启动隧道:2. 配置路由映射 (Public Hostnames)
在隧道的配置页面,添加以下三条映射记录(注意 Type 全部选 HTTP):
- MinIO API (用于代码读写大模型)
- Subdomain:
s3 - URL:
localhost:9000
- MinIO Console (用于浏览器管理和分享链接)
- Subdomain:
console - URL:
localhost:9001
- WebDAV (用于 Zotero 或访达挂载)
- Subdomain:
webdav - URL:
127.0.0.1:8080(⚠️ 注意这里填 127.0.0.1 而非 localhost,以避免 502 报错)
💡 关键修复:WebDAV 防 400 报错设置
编辑刚刚建好的
webdav 规则,展开 Additional application settings > HTTP settings,在 HTTP Host Header 中填入 webdav.yourdomain.com,然后保存。这能解决因反向代理导致 Rclone 域名验证失败的问题。四、 优雅绕过 Cloudflare 的 100MB 上传限制
Cloudflare 免费版限制单次 HTTP 请求不得超过 100MB。突破此限制的核心是强制使用 S3 的分块上传(Multipart Upload)。
1. 在 Python 代码中(boto3)
使用
TransferConfig 封装上传函数:2. 在命令行中(AWS CLI)
在使用 AWS CLI 的机器上执行一次全局配置:
此后所有的
aws s3 cp 都会自动分块绕过限制。⚠️ 避坑指南:避免在 Web Console (浏览器) 或 WebDAV 挂载端上传大于 100MB 的单体文件,大模型权重和数据集请统一走 S3 API/CLI。
至此,您的 Mac mini 已经成为了一台安全、高效且跨网可达的数据中心。
Loading...