问题 OpenList 链接 RustFS s3 端点后无法通过 OpenList 上传文件

控制台出现 cors 或者 403 等导致无法通过 OpenList 上传文件

记一次借助 ai 帮朋友机器排查 openlist 对接 rustfs 无法上传问题 403、cors 错误1

记一次借助 ai 帮朋友机器排查 openlist 对接 rustfs 无法上传问题 403、cors 错误1

环境信息: (问 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 检查端点响应信息

记一次借助 ai 帮朋友机器排查 openlist 对接 rustfs 无法上传问题 403、cors 错误4

记一次借助 ai 帮朋友机器排查 openlist 对接 rustfs 无法上传问题 403、cors 错误4

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

记一次借助 ai 帮朋友机器排查 openlist 对接 rustfs 无法上传问题 403、cors 错误2

记一次借助 ai 帮朋友机器排查 openlist 对接 rustfs 无法上传问题 403、cors 错误2

  • 重载 Nginx 配置后,上传 100% 成功,但 ListObjectsV2 操作出现 301

    继续让 ai 检查 Nginx 配置,发现一处端口冲突导致的重定向循环。。。

    删除后重载 Nginx 配置,ListObjectsV2 也正常了。OpenList 端也恢复正常使用了。

记一次借助 ai 帮朋友机器排查 openlist 对接 rustfs 无法上传问题 403、cors 错误3

记一次借助 ai 帮朋友机器排查 openlist 对接 rustfs 无法上传问题 403、cors 错误3


📌 转载信息
原作者:
wwzccccc
转载时间:
2025/12/25 11:16:25