S3存储配置笔记
S3 存储配置笔记(Garage 自建 / Cloudflare R2)
归档日期:2026-10-11
一、自建 Garage(2026-10-10 部署,2026-10-11 下线)
环境
- Debian 云服务器(2C2G),podman
- 镜像:dxflrs/garage v2.4.1,单节点,sqlite 元数据
- 部署文件曾位于服务器
/data/garage/(已删除)
核心配置
- 启动参数
--single-node --default-bucket:自动完成 layout 初始化、创建 bucket、生成 S3 key - 按 2GB 内存做调优(小内存机必需)
- 3900 端口只绑定宿主机回环,不直接暴露公网;Caddy HTTPS 反代
- 容器组网
znet,Caddy 以容器名garage:3900反代 - 对外域名:
zpmuses3.zhaopeng.site(阿里 ESA + Caddy 反代 3900)
S3 参数
- endpoint:
https://zpmuses3.zhaopeng.site - bucket:
muse - region:
garage(强制校验,签名时必须用这个值) - 密钥位置:
/data/garage/podman-compose.yml的 environment(GARAGE_DEFAULT_ACCESS_KEY/GARAGE_DEFAULT_SECRET_KEY)
rclone 配置
[garage]
type = s3
provider = Other
access_key_id = <GARAGE_DEFAULT_ACCESS_KEY>
secret_access_key = <GARAGE_DEFAULT_SECRET_KEY>
endpoint = https://zpmuses3.zhaopeng.site
region = garage
force_path_style = true挂载:
rclone mount garage:muse /data/markmap/docs/muse --daemon目录缓存
--dir-cache-time默认 5m:经 S3 API 上传的新对象,最长 5 分钟后才在挂载目录可见- 低频场景保持默认;需要实时可见时重挂加
--dir-cache-time 10s(每次列目录多一次 LIST 请求)
下线步骤(2026-10-11 已执行)
fusermount -u /data/markmap/docs/muse
rclone config delete garage
cd /data/garage && podman-compose down -v -t 0
rm -rf /data/garage
# Caddyfile 删除 zpmuses3 反代段并 reload;ESA 删除 DNS 解析二、Cloudflare R2(2026-10-11 起在用)
免费额度
- 每月 10GB 标准存储 + 100 万次 A 类操作 + 1000 万次 B 类操作
- 出站流量免费
- 免费额度只覆盖标准存储类,不频繁访问类会产生费用
建桶
- R2 → 创建存储桶,存储类选「标准」
- bucket:
zmus3,位置:亚太地区(APAC) - 自定义域名:不需要(私有读写走 S3 API)
API 令牌
- R2 → 管理 R2 API 令牌 → 创建令牌
- 权限:读写;作用域:仅限定到
zmus3桶
S3 参数
- endpoint:
https://91b76c6250566091ddc7ad7ab0c450dc.r2.cloudflarestorage.com - bucket:
zmus3 - region:
auto - 地址风格:path-style,签名 s3v4
rclone 配置
[zmus3]
type = s3
provider = Cloudflare
access_key_id = <R2 Access Key ID>
secret_access_key = <R2 Secret Access Key>
endpoint = https://91b76c6250566091ddc7ad7ab0c450dc.r2.cloudflarestorage.com
region = auto挂载:
rclone mount zmus3:zmus3 /data/markmap/docs/zmus3 --vfs-cache-mode writes --daemon--vfs-cache-mode writes 只影响经挂载点写入的行为;新对象可见速度只看 --dir-cache-time(S3 不支持 poll,只能等目录缓存过期)。
三、使用约定
- 「放到我 S3 存储里」= 上传到 R2
zmus3桶 - 每次传文件时在聊天里贴 Access Key ID 和 Secret 两个值,用完销毁、永不存档
- endpoint / 桶名 / region 已固定,无需重复提供
- 文件落地后经服务器 rclone 挂载可见,挪到
/data/markmap/docs后可经自有域名对外访问