fix(runner): 修复转存后残留二进制误判
统一结果二进制探测与上传规则,避免将 thinking_bytes 等上游元数据误判为待转存媒体,同时保留显式媒体字段和签名识别。\n\n补充不含原始内容的安全诊断,并兼容对象存储前缀旧字段;修正真实 OSS 验收脚本使用的正式字段。\n\n验证:Go 全量测试、go vet、迁移安全检查、真实 Gemini 上游响应及阿里云 OSS 转存均通过。
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user