refactor(api): signAndPackReport 直接返回签名 ZIP 文件

This commit is contained in:
2026-03-05 16:58:59 +08:00
parent b193759e90
commit b1062a5aed
5 changed files with 10 additions and 20 deletions

View File

@@ -80,7 +80,7 @@ export const signAndPackReport = oc
operationId: 'signAndPackReport',
summary: '签名并打包报告 ZIP',
description:
'接收原始 ZIPmultipart/form-data 文件字段 rawZip由 UX 生成 summary.json、manifest.json、signature.asc返回 signedZipBase64。',
'接收原始 ZIPmultipart/form-data 文件字段 rawZip由 UX 生成 summary.json、manifest.json、signature.asc直接返回签名后 ZIP 二进制文件。',
tags: ['Crypto', 'Report'],
})
.input(
@@ -96,9 +96,4 @@ export const signAndPackReport = oc
.describe('原始报告 ZIP 文件multipart/form-data 字段)'),
}),
)
.output(
z.object({
deviceSignature: z.string().describe('设备签名HMAC-SHA256 Base64'),
signedZipBase64: z.string().describe('签名后 ZIP 的 Base64 编码'),
}),
)
.output(z.file().describe('签名后报告 ZIP 文件(二进制响应)'))

View File

@@ -301,7 +301,7 @@ export const signAndPackReport = os.crypto.signAndPackReport.use(db).handler(asy
compressionOptions: { level: 9 },
})
const signedZipBase64 = Buffer.from(signedZipBytes).toString('base64')
return { deviceSignature, signedZipBase64 }
return new File([Buffer.from(signedZipBytes)], `${input.taskId}-signed-report.zip`, {
type: 'application/zip',
})
})