Files
browser/platform_web/utils/serverFileTransfer.ts
T
2026-09-03 11:27:19 +08:00

19 lines
1022 B
TypeScript

import type { PlatformApiClient } from "../api/client";
import type { ServerFileDownloadResponse } from "../api/types";
import { downloadArtifactReference, safeArtifactFilename, saveArtifactBlob } from "./artifactTransfer";
export async function downloadServerFileResult(client: PlatformApiClient, result: ServerFileDownloadResponse): Promise<string> {
if (result.status !== "ready") {
return result.reason ?? "文件读取任务已派发,完成后可再次下载。";
}
if (result.content !== undefined) {
saveArtifactBlob(new Blob([result.content], { type: result.contentType ?? "text/plain;charset=utf-8" }), result.filename || "server-file.txt");
return `下载已开始:${result.filename || result.key}`;
}
if (!result.artifact) {
return "文件内容尚未可用。";
}
await downloadArtifactReference(result.artifact, (artifactId) => client.downloadArtifactContent(artifactId));
return `下载已开始:${safeArtifactFilename(result.filename || result.artifact.filename)}`;
}