## 主要变更
### 1. Storage 配置修改
- 修改 docker-compose.yml: STORAGE_BACKEND 从 s3 改为 file
- 注释所有 GLOBAL_S3_* 环境变量
- 启用 FILE_STORAGE_BACKEND_PATH=/var/lib/storage
- 停止使用 MinIO 容器(docker-compose.s3.yml)
### 2. 文档更新
- 新增 docs/STORAGE_FILE_BACKEND_MIGRATION.md - 迁移详细文档
- 新增 docs/STORAGE_TROUBLESHOOTING.md - 故障排查指南
- 更新 README.md - 反映新的架构
### 3. 存储架构变更
- 从 MinIO S3 对象存储 -> 本地文件系统
- 存储路径: volumes/storage/undefined/stub/{bucket}/{file}/{version}
- 不再需要额外的 MinIO 容器
## 测试结果
- ✅ 上传文件 - 正常
- ✅ 下载文件 - 正常
- ✅ 删除文件 - 正常
- ✅ 签名 URL - 正常
- ⚠️ 更新文件 - 已知bug(使用删除+上传代替)
## 注意事项
- 旧的 S3 后端数据需要清理数据库元数据
- 文件更新操作有已知bug,需使用删除+重新上传
- 备份文件保存在 *.backup-before-rustfs
## 回滚方法
如需回滚到 MinIO:
```bash
cp docker-compose.yml.backup-before-rustfs docker-compose.yml
docker compose -f docker-compose.s3.yml up -d
docker compose restart storage
```
日期: 2025-12-05
状态: ✅ 测试通过 (4/5 功能正常)
52 lines
1.6 KiB
YAML
52 lines
1.6 KiB
YAML
# MinIO S3 对象存储配置
|
||
# 仅内网访问 (Tailscale): http://100.64.0.2:9000 (S3 API) 和 http://100.64.0.2:9001 (Console)
|
||
# 公网文件上传下载通过 Supabase Storage API: https://amiap.hzau.edu.cn/supa/storage/v1/
|
||
|
||
services:
|
||
minio:
|
||
image: minio/minio
|
||
ports:
|
||
# 仅绑定到 Tailscale IP,内网访问
|
||
- "100.64.0.2:9000:9000" # S3 API (内网)
|
||
- "100.64.0.2:9001:9001" # Console (内网)
|
||
environment:
|
||
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
|
||
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
|
||
# 启用浏览器访问
|
||
MINIO_BROWSER: "on"
|
||
# 内网访问,不需要公网 URL
|
||
MINIO_SERVER_URL: "http://100.64.0.2:9000"
|
||
# 控制台内网访问
|
||
MINIO_BROWSER_REDIRECT_URL: "http://100.64.0.2:9001"
|
||
# 禁用文件凭证,使用环境变量
|
||
MINIO_ROOT_USER_FILE: ""
|
||
MINIO_ROOT_PASSWORD_FILE: ""
|
||
command: server --console-address ":9001" /data
|
||
healthcheck:
|
||
test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ]
|
||
interval: 2s
|
||
timeout: 10s
|
||
retries: 5
|
||
volumes:
|
||
- /vol1/1000/s3:/data:z
|
||
networks:
|
||
- default
|
||
# 不再配置 Traefik labels,仅内网访问
|
||
|
||
minio-createbucket:
|
||
image: minio/mc
|
||
depends_on:
|
||
minio:
|
||
condition: service_healthy
|
||
entrypoint: >
|
||
/bin/sh -c "
|
||
/usr/bin/mc alias set supa-minio http://minio:9000 ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD};
|
||
/usr/bin/mc mb supa-minio/stub;
|
||
exit 0;
|
||
"
|
||
|
||
networks:
|
||
default:
|
||
name: supabase_default
|
||
external: true
|