Files
go-omni/performance/loggingUploadsAcceptance.md

2.0 KiB
Raw Permalink Blame History

日志与上传扩展验收

2026-09-23,在 macOS arm64 / Go 1.27.1 开发环境完成;真实 S3 测试使用本机 Docker 内 Linux arm64 MinIO。此次未在业务服务器运行测试负载。

  • 全库:GOMAXPROCS=4 GO_OMNI_SCAFFOLD_INTEGRATION=1 go test -race -p=2 -count=1 -timeout=240s ./...,37 个有测试的包通过,包含脚手架集成和全部网络适配器。
  • 收尾新增业务错误堆栈、统一分片 MIME 签名及大小不符契约后,对 logx、middleware、storage 全部子包、config、app 重新运行 race,全部通过。
  • go vet ./...、go build ./...、git diff --check 通过。
  • 轮转:并发写入、备份份数、gzip 内容完整性、关闭后不重开;脱敏:嵌套 map/struct/group/LogValuer、循环截断、不修改调用者数据;HTTP:慢请求 WARN、5xx ERROR、panic 堆栈和已提交状态保持。
  • 上传:Local 签名篡改/超时参数/重复参数/类型伪造/实际大小不符/失败不覆盖;S3/OSS SDK 协议及分片分页;R2 签名参数。
  • 真实 MinIO:SDK/签名直传、两片合并、分页续传查询、重复取消、声明大小伪造、签名绑定大小和类型(篡改返回 403)、普通对象契约。测试环境最多一个容器,2 CPU、2 GiB、256 pids,network=none,无端口映射;退出后清理。

真实 S3 的运行命令、源码 SHA-256、镜像 ID、清理状态和日志摘要见 uploadsLocal.json,原始输出见 uploadsLocal.txt。可用 python3 scripts/verifyUploads.py 复现(提前准备对应 MinIO 镜像)。

边界:OSS/R2 未使用云账号实测;HTTP fixture 不验证厂商签名。MinIO 的通过结果不能代替它们的实网验收。本地存储目前提供受限签名上传,不提供持久分片会话。分片实际内容校验、业务授权、对象归属、上传配额和过期分片清理由业务/部署配置。未做生产负载、磁盘耗尽、日志平台采集或云存储故障恢复验收。