问题 OpenList 链接 RustFS s3 端点后无法通过 OpenList 上传文件
控制台出现 cors 或者 403 等导致无法通过 OpenList 上传文件

环境信息: (问 ai 前最好提前说明相关服务环境信息)
- RustFS 服务运行在
localhost:9000(HTTP) - Nginx 反向代理在
9002端口提供 HTTPS 访问 - 端点地址:
https://RustFS.example.com:9002 - OpenList 在别的机器:
https://alist.example.com
省流总结:
Nginx 对 RustFS 的反代缺少一个关键配置 proxy_redirect off
反代实现 https 的时候端口冲突导致 301 重定向循环
Tip问 ai 前最好提前说明相关服务环境信息,复盘流程会发现,如果知道 Nginx 做了反代可以提前让 ai 检查 Nginx 加快问题排查流程。本次排查时间主要消耗在梳理朋友机器网络环境上,ai debug 还是很快的
附上问题排查流程 (省略了一部分内容 + 信息脱敏)
Note本次排查在 Antigravity + Claude Opus 4.5 (Thinking) 工具下
1. 先直接通过 RustFS 页面上传,确认 RustFS 服务正常。 –确认服务正常
2. 接下来让 ai 编写 s3 端点上传,验证 s3 端点上传是否正常。 –问题初显
初始尝试:使用 boto3 默认配置连接,返回 301 错误
~/…/github/rustf $ uv run test_upload.py Installed 7 packages in 52ms ================================================== 🚀 RustFS S3 上传测试 ================================================== ⚠️ 未指定文件,将创建测试文件... 📝 已创建测试文件: /tmp/RustFS_test.txt 📦 正在上传: /tmp/RustFS_test.txt 📍 目标: s3://ccc/RustFS_test.txt 🔗 端点: https://RustFS.example.com:9002 ❌ 上传失败: Failed to upload /tmp/RustFS_test.txt to ccc/RustFS_test.txt: An error occurred (301) when calling the PutObject operation: Moved Permanently尝试添加路径风格访问:仍然失败 301
config=Config(
signature_version="s3v4",
s3={"addressing_style": "path"}
)
- 添加 region 配置:仍然失败 301
region_name="us-east-1" - 禁用 ssl:上传成功,但后面又失败了,上传成功后的 ListObjectsV2 操作也出现 301
继续 curl 检查端点响应信息

- 得出问题在 Nginx
接下来把 Nginx 完整信息发送并解析,得出关键信息,缺少 proxy_buffering off;

重载 Nginx 配置后,上传 100% 成功,但 ListObjectsV2 操作出现 301
继续让 ai 检查 Nginx 配置,发现一处端口冲突导致的重定向循环。。。
删除后重载 Nginx 配置,ListObjectsV2 也正常了。OpenList 端也恢复正常使用了。

评论区(暂无评论)