fix(media): 统一图片结果 URL 化并限制同步 Base64

将上游 URL 直接持久化,内联媒体经对象存储后仅保留 URL 与内部定位元数据;异步轮询、任务详情和幂等重放统一使用零对象读取的 URL 投影,并增加 64KiB 响应门禁。

OpenAI 图片接口接受 url 与 b64_json,同步 Base64 限制为 20MiB 和每 Pod 2 并发;新增历史结果迁移清零门禁、结果指标和 API GOMEMLIMIT。

验证:API go test ./...、go vet、聚焦 race、pnpm openapi、pnpm lint/test/build、迁移安全检查与 docker compose config 均通过。
This commit is contained in:
2026-08-05 18:15:06 +08:00
parent f9b945e4aa
commit b13392ef50
22 changed files with 1367 additions and 176 deletions
+13 -1
View File
@@ -5656,6 +5656,16 @@
"description": "OK",
"schema": {
"$ref": "#/definitions/httpapi.EasyAIGeneratedResponse"
},
"headers": {
"Deprecation": {
"type": "string",
"description": "output_content 与 result 兼容别名的废弃标记"
},
"X-Gateway-Response-Format": {
"type": "string",
"description": "实际结果格式,异步轮询固定为 url"
}
}
},
"404": {
@@ -11167,6 +11177,7 @@
}
},
"output_content": {
"description": "OutputContent is a one-release URL-only compatibility alias for Data.",
"type": "array",
"items": {
"$ref": "#/definitions/httpapi.EasyAIMediaOutput"
@@ -11177,6 +11188,7 @@
"example": "/api/v1/ai/result/9f4d8f3d-5f5f-4bb7-a4be-344a9f930e25"
},
"result": {
"description": "Result is a one-release URL-only compatibility alias and is deprecated.",
"type": "object",
"additionalProperties": true
},
@@ -11218,7 +11230,7 @@
"type": "string"
},
"b64_json": {
"description": "B64JSON is retained when result media transfer is disabled.",
"description": "B64JSON is available only to bounded synchronous OpenAI image responses.",
"type": "string"
},
"content": {