fix(runner): 修复转存后残留二进制误判

统一结果二进制探测与上传规则,避免将 thinking_bytes 等上游元数据误判为待转存媒体,同时保留显式媒体字段和签名识别。\n\n补充不含原始内容的安全诊断,并兼容对象存储前缀旧字段;修正真实 OSS 验收脚本使用的正式字段。\n\n验证:Go 全量测试、go vet、迁移安全检查、真实 Gemini 上游响应及阿里云 OSS 转存均通过。
This commit is contained in:
2026-08-04 14:33:04 +08:00
parent 394cc6288f
commit 5c7d6ac9aa
7 changed files with 142 additions and 22 deletions
@@ -74,6 +74,23 @@ func TestS3ObjectStorageUsesSigV4AndDeterministicObjectKey(t *testing.T) {
}
}
func TestObjectStorageObjectKeySupportsLegacyObjectKeyPrefix(t *testing.T) {
channel := testObjectStorageChannel("s3", "https://s3.example.com", "s3-legacy-prefix")
delete(channel.Config, "objectPrefix")
channel.Config["objectKeyPrefix"] = "/legacy/gateway/"
adapter, err := newObjectStorageAdapter(channel)
if err != nil {
t.Fatal(err)
}
adapter.now = func() time.Time { return time.Date(2026, time.August, 4, 1, 2, 3, 0, time.UTC) }
objectKey := adapter.objectKey(FileUploadPayload{
Bytes: []byte("legacy-prefix"), ContentType: "image/png", Scene: store.FileStorageSceneImageResult,
})
if !strings.HasPrefix(objectKey, "legacy/gateway/image_result/2026/08/04/") {
t.Fatalf("legacy objectKeyPrefix was not honored: %s", objectKey)
}
}
func TestRequestAssetUsesPrivateSignedURLEvenWhenPublicBaseURLExists(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
w.WriteHeader(http.StatusOK)