Skip to content

Commit 65b2363

Browse files
committed
fix(server): flush and end SSE responses for pull-image
1 parent b9f7bbd commit 65b2363

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

server/api/docker/pull-image.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,13 @@ const LAYER_TIMEOUT_MS = Math.max(
5151
export default defineEventHandler(async (event) => {
5252
// 设置SSE响应头
5353
setHeader(event, "Content-Type", "text/event-stream");
54-
setHeader(event, "Cache-Control", "no-cache");
54+
setHeader(event, "Cache-Control", "no-cache, no-transform");
5555
setHeader(event, "Connection", "keep-alive");
56+
setHeader(event, "X-Accel-Buffering", "no");
57+
setHeader(event, "Content-Encoding", "identity");
5658
event.node.res.flushHeaders?.();
59+
event.node.res.write(`:${" ".repeat(2048)}\n\n`);
60+
(event.node.res as any).flush?.();
5761

5862
const query = getQuery(event);
5963
const { imageName: rawImageName, token, layers: layersJson } = query as unknown as QueryParams;
@@ -110,6 +114,7 @@ export default defineEventHandler(async (event) => {
110114
})}\n\n`
111115
);
112116
(event.node.res as any).flush?.();
117+
event.node.res.end();
113118
};
114119

115120
// 下载单个层
@@ -272,6 +277,7 @@ export default defineEventHandler(async (event) => {
272277
})}\n\n`
273278
);
274279
(event.node.res as any).flush?.();
280+
event.node.res.end();
275281
logger.info("pull complete", {
276282
imageName,
277283
total: results.length,

0 commit comments

Comments
 (0)