@juzi/file-box 1.7.19 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/src/config.d.ts +0 -1
  3. package/dist/cjs/src/config.d.ts.map +1 -1
  4. package/dist/cjs/src/config.js +1 -3
  5. package/dist/cjs/src/config.js.map +1 -1
  6. package/dist/cjs/src/file-box.d.ts.map +1 -1
  7. package/dist/cjs/src/file-box.js +2 -2
  8. package/dist/cjs/src/file-box.js.map +1 -1
  9. package/dist/cjs/src/file-box.spec.d.ts.map +1 -1
  10. package/dist/cjs/src/file-box.spec.js +26 -2
  11. package/dist/cjs/src/file-box.spec.js.map +1 -1
  12. package/dist/cjs/src/misc.d.ts.map +1 -1
  13. package/dist/cjs/src/misc.js +254 -50
  14. package/dist/cjs/src/misc.js.map +1 -1
  15. package/dist/cjs/src/misc.spec.js +105 -15
  16. package/dist/cjs/src/misc.spec.js.map +1 -1
  17. package/dist/cjs/src/version.d.ts.map +1 -1
  18. package/dist/cjs/src/version.js +1 -1
  19. package/dist/cjs/src/version.js.map +1 -1
  20. package/dist/cjs/tests/chunk-download.spec.d.ts +3 -0
  21. package/dist/cjs/tests/chunk-download.spec.d.ts.map +1 -0
  22. package/dist/cjs/tests/chunk-download.spec.js +318 -0
  23. package/dist/cjs/tests/chunk-download.spec.js.map +1 -0
  24. package/dist/cjs/tests/misc-error-handling.spec.d.ts +3 -0
  25. package/dist/cjs/tests/misc-error-handling.spec.d.ts.map +1 -0
  26. package/dist/cjs/tests/misc-error-handling.spec.js +352 -0
  27. package/dist/cjs/tests/misc-error-handling.spec.js.map +1 -0
  28. package/dist/cjs/tests/network-timeout.spec.js +15 -2
  29. package/dist/cjs/tests/network-timeout.spec.js.map +1 -1
  30. package/dist/esm/src/config.d.ts +0 -1
  31. package/dist/esm/src/config.d.ts.map +1 -1
  32. package/dist/esm/src/config.js +0 -2
  33. package/dist/esm/src/config.js.map +1 -1
  34. package/dist/esm/src/file-box.d.ts.map +1 -1
  35. package/dist/esm/src/file-box.js +2 -2
  36. package/dist/esm/src/file-box.js.map +1 -1
  37. package/dist/esm/src/file-box.spec.d.ts.map +1 -1
  38. package/dist/esm/src/file-box.spec.js +27 -3
  39. package/dist/esm/src/file-box.spec.js.map +1 -1
  40. package/dist/esm/src/misc.d.ts.map +1 -1
  41. package/dist/esm/src/misc.js +256 -52
  42. package/dist/esm/src/misc.js.map +1 -1
  43. package/dist/esm/src/misc.spec.js +105 -15
  44. package/dist/esm/src/misc.spec.js.map +1 -1
  45. package/dist/esm/src/version.d.ts.map +1 -1
  46. package/dist/esm/src/version.js +1 -1
  47. package/dist/esm/src/version.js.map +1 -1
  48. package/dist/esm/tests/chunk-download.spec.d.ts +3 -0
  49. package/dist/esm/tests/chunk-download.spec.d.ts.map +1 -0
  50. package/dist/esm/tests/chunk-download.spec.js +316 -0
  51. package/dist/esm/tests/chunk-download.spec.js.map +1 -0
  52. package/dist/esm/tests/misc-error-handling.spec.d.ts +3 -0
  53. package/dist/esm/tests/misc-error-handling.spec.d.ts.map +1 -0
  54. package/dist/esm/tests/misc-error-handling.spec.js +350 -0
  55. package/dist/esm/tests/misc-error-handling.spec.js.map +1 -0
  56. package/dist/esm/tests/network-timeout.spec.js +15 -2
  57. package/dist/esm/tests/network-timeout.spec.js.map +1 -1
  58. package/package.json +11 -4
  59. package/src/config.ts +0 -3
  60. package/src/file-box.spec.ts +34 -7
  61. package/src/file-box.ts +5 -5
  62. package/src/misc.spec.ts +120 -18
  63. package/src/misc.ts +242 -57
  64. package/src/version.ts +1 -1
@@ -13,9 +13,10 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  import 'reflect-metadata';
15
15
  import assert from 'assert';
16
- import { PassThrough } from 'stream';
17
- import { test, sinon } from 'tstest';
18
16
  import { instanceToClass } from 'clone-class';
17
+ import { createServer } from 'http';
18
+ import { PassThrough } from 'stream';
19
+ import { sinon, test } from 'tstest';
19
20
  import { FileBox } from './file-box.js';
20
21
  import { FileBoxType } from './file-box.type.js';
21
22
  const requiredMetadataKey = Symbol('required');
@@ -108,7 +109,30 @@ test('syncRemote()', async (t) => {
108
109
  static fromUrl(...args) { return super.fromUrl(...args); }
109
110
  _syncUrlMetadata() { return super._syncUrlMetadata(); }
110
111
  }
111
- const URL = 'http://httpbin.org/response-headers?Content-Disposition=attachment;%20filename%3d%22test.txt%22&filename=test.txt';
112
+ /**
113
+ * 使用本地 server,避免依赖外网(httpbin 不稳定/可能被墙/会返回 html)
114
+ */
115
+ const server = createServer((req, res) => {
116
+ if (req.method === 'HEAD' && req.url?.startsWith('/response-headers')) {
117
+ res.writeHead(200, {
118
+ 'Content-Disposition': 'attachment; filename="test.txt"',
119
+ 'Content-Length': '159',
120
+ 'Content-Type': 'application/json',
121
+ });
122
+ res.end();
123
+ return;
124
+ }
125
+ res.writeHead(404);
126
+ res.end();
127
+ });
128
+ const host = await new Promise((resolve) => {
129
+ server.listen(0, '127.0.0.1', () => {
130
+ const addr = server.address();
131
+ resolve(`http://127.0.0.1:${addr.port}`);
132
+ });
133
+ });
134
+ t.teardown(() => { server.close(); });
135
+ const URL = `${host}/response-headers?Content-Disposition=attachment;%20filename%3d%22test.txt%22&filename=test.txt`;
112
136
  const EXPECTED_NAME_FROM_URL = 'response-headers';
113
137
  const EXPECTED_TYPE_FROM_URL = 'application/unknown';
114
138
  const EXPECTED_NAME_FROM_HEADER = 'test.txt';
@@ -1 +1 @@
1
- {"version":3,"file":"file-box.spec.js","sourceRoot":"","sources":["../../../src/file-box.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-box.spec.js","sourceRoot":"","sources":["../../../src/file-box.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":";;;;AAKA,OAAO,IAAwB,MAAM,MAAM,CAAA;AAK3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAwBtC,wBAAgB,eAAe,CAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,mBAAwB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CA8B/I;AAED,wBAAgB,oBAAoB,CAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,GAAG,MAAM,CAetF;AAED,wBAAsB,UAAU,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,mBAAwB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAoB3H;AA2GD,wBAAsB,cAAc,CAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvE"}
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":";;;;AAKA,OAAO,IAAwB,MAAM,MAAM,CAAA;AAK3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAyBtC,wBAAgB,eAAe,CAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,mBAAwB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CA+B/I;AAED,wBAAgB,oBAAoB,CAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,GAAG,MAAM,CAetF;AAED,wBAAsB,UAAU,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,mBAAwB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0B3H;AA6RD,wBAAsB,cAAc,CAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvE"}
@@ -2,18 +2,21 @@ import assert from 'assert';
2
2
  import { randomUUID } from 'crypto';
3
3
  import { once } from 'events';
4
4
  import { createReadStream, createWriteStream } from 'fs';
5
- import { rm } from 'fs/promises';
5
+ import { rm, stat } from 'fs/promises';
6
6
  import http from 'http';
7
7
  import https from 'https';
8
8
  import { HttpsProxyAgent } from 'https-proxy-agent';
9
9
  import { tmpdir } from 'os';
10
10
  import { join } from 'path';
11
+ import { Transform } from 'stream';
12
+ import { pipeline } from 'stream/promises';
11
13
  import { URL } from 'url';
12
- import { HTTP_CHUNK_SIZE, HTTP_REQUEST_TIMEOUT, HTTP_RESPONSE_TIMEOUT, NO_SLICE_DOWN, } from './config.js';
14
+ import { HTTP_REQUEST_TIMEOUT, HTTP_RESPONSE_TIMEOUT, } from './config.js';
13
15
  const protocolMap = {
14
16
  'http:': { agent: http.globalAgent, request: http.request },
15
17
  'https:': { agent: https.globalAgent, request: https.request },
16
18
  };
19
+ const noop = () => { };
17
20
  const unsupportedRangeDomains = new Set();
18
21
  function getProtocol(protocol) {
19
22
  assert(protocolMap[protocol], new Error('unknown protocol: ' + protocol));
@@ -37,8 +40,8 @@ export async function httpHeadHeader(url, headers = {}, proxyUrl) {
37
40
  throw new Error(`ttl expired! too many(>${REDIRECT_TTL}) 302 redirection.`);
38
41
  }
39
42
  const res = await fetch(url, {
40
- method: 'HEAD',
41
43
  headers,
44
+ method: 'HEAD',
42
45
  }, proxyUrl);
43
46
  res.destroy();
44
47
  if (!/^3/.test(String(res.statusCode))) {
@@ -51,7 +54,8 @@ export async function httpHeadHeader(url, headers = {}, proxyUrl) {
51
54
  if (!res.headers.location) {
52
55
  throw new Error('302 found but no location!');
53
56
  }
54
- url = res.headers.location;
57
+ // Location 可能是相对路径,需要以当前 url 作为 base 解析
58
+ url = new URL(res.headers.location, url).toString();
55
59
  }
56
60
  }
57
61
  export function httpHeaderToFileName(headers) {
@@ -78,8 +82,12 @@ export async function httpStream(url, headers = {}, proxyUrl) {
78
82
  method: 'GET',
79
83
  };
80
84
  const fileSize = Number(headHeaders['content-length']);
81
- if (!unsupportedRangeDomains.has(hostname) && !NO_SLICE_DOWN && headHeaders['accept-ranges'] === 'bytes' && fileSize > HTTP_CHUNK_SIZE) {
82
- return await downloadFileInChunks(url, options, fileSize, HTTP_CHUNK_SIZE, proxyUrl);
85
+ // 运行时读取 env:方便测试/调用方动态调整
86
+ const noSliceDown = process.env['FILEBOX_NO_SLICE_DOWN'] === 'true';
87
+ // 检查服务器是否支持 range 请求
88
+ const supportsRange = headHeaders['accept-ranges'] === 'bytes';
89
+ if (!unsupportedRangeDomains.has(hostname) && !noSliceDown && supportsRange && fileSize > 0) {
90
+ return await downloadFileInChunks(url, options, proxyUrl);
83
91
  }
84
92
  else {
85
93
  return await fetch(url, options, proxyUrl);
@@ -88,96 +96,292 @@ export async function httpStream(url, headers = {}, proxyUrl) {
88
96
  async function fetch(url, options, proxyUrl) {
89
97
  const { protocol } = new URL(url);
90
98
  const { request, agent } = getProtocol(protocol);
99
+ const abortController = new AbortController();
100
+ const signal = abortController.signal;
91
101
  const opts = {
92
102
  agent,
93
103
  ...options,
104
+ signal,
94
105
  };
95
106
  setProxy(opts, proxyUrl);
96
107
  const req = request(url, opts);
97
- req
98
- .on('error', () => {
99
- req.destroy();
108
+ let res;
109
+ // 兜底:任何时候 req.error 都不会变成 uncaughtException
110
+ const onReqError = (err) => {
111
+ const error = err instanceof Error ? err : new Error(String(err));
112
+ // 统一用 abort 中止请求:signal 已挂在 req 上,并且我们会把 abort(reason) 桥接到 res.destroy(...)
113
+ abortController.abort(error);
114
+ };
115
+ req.on('error', noop)
116
+ .on('error', onReqError)
117
+ .once('close', () => {
118
+ // close 后禁用 request timeout,避免定时器晚到触发 destroy -> error 无人监听
119
+ try {
120
+ req.setTimeout(0);
121
+ }
122
+ catch { }
123
+ req.off('error', onReqError);
124
+ req.off('error', noop);
100
125
  })
126
+ // request timeout:只用于“拿到 response 之前”(连接/握手/首包)
101
127
  .setTimeout(HTTP_REQUEST_TIMEOUT, () => {
102
- req.emit('error', new Error(`FileBox: Http request timeout (${HTTP_REQUEST_TIMEOUT})!`));
128
+ // 已经拿到 response 时,不要再用 request timeout 误伤(会导致 aborted/ECONNRESET)
129
+ if (res)
130
+ return;
131
+ abortController.abort(new Error(`FileBox: Http request timeout (${HTTP_REQUEST_TIMEOUT})!`));
103
132
  })
104
133
  .end();
105
- const responseEvents = await once(req, 'response');
106
- const res = responseEvents[0];
134
+ try {
135
+ const responseEvent = await once(req, 'response', { signal });
136
+ res = responseEvent[0];
137
+ // response 到来后清掉 request timeout,避免误伤长下载导致 aborted/ECONNRESET
138
+ try {
139
+ req.setTimeout(0);
140
+ }
141
+ catch { }
142
+ // 必须尽早挂,避免 “response 刚到就 error/abort” 的竞态导致 uncaughtException
143
+ res.on('error', noop);
144
+ signal.throwIfAborted();
145
+ }
146
+ catch (e) {
147
+ // once(...) 被 signal abort 时通常会抛 AbortError;优先抛出 abort(reason) 的真实原因
148
+ const reason = signal.reason;
149
+ const err = reason instanceof Error
150
+ ? reason
151
+ : (e instanceof Error ? e : new Error(String(e)));
152
+ // 失败时尽量主动清理,避免 socket 悬挂(destroy 重复调用是安全的)
153
+ try {
154
+ res?.destroy(err);
155
+ }
156
+ catch { }
157
+ try {
158
+ req.destroy(err);
159
+ }
160
+ catch { }
161
+ throw err;
162
+ }
163
+ const onAbort = () => {
164
+ const reason = signal.reason;
165
+ res?.destroy(reason instanceof Error ? reason : new Error(String(reason)));
166
+ };
167
+ signal.addEventListener('abort', onAbort, { once: true });
107
168
  res
108
- .on('error', () => {
109
- res.destroy();
110
- });
111
- if (res.socket) {
112
- res.setTimeout(HTTP_RESPONSE_TIMEOUT, () => {
113
- res.emit('error', new Error(`FileBox: Http response timeout (${HTTP_RESPONSE_TIMEOUT})!`));
114
- });
169
+ .once('end', () => { try {
170
+ res.setTimeout(0);
115
171
  }
172
+ catch { } })
173
+ .once('close', () => {
174
+ // close 时做清理/兜底判断(尽力而为)
175
+ try {
176
+ res.setTimeout(0);
177
+ }
178
+ catch { }
179
+ if (!res.complete && !res.destroyed) {
180
+ // 有些场景不会 emit 'aborted',用 close + complete 兜底一次
181
+ res.destroy(new Error('FileBox: Http response aborted!'));
182
+ }
183
+ signal.removeEventListener('abort', onAbort);
184
+ res.off('error', noop);
185
+ })
186
+ .setTimeout(HTTP_RESPONSE_TIMEOUT, () => {
187
+ abortController.abort(new Error(`FileBox: Http response timeout (${HTTP_RESPONSE_TIMEOUT})!`));
188
+ });
116
189
  return res;
117
190
  }
118
- async function downloadFileInChunks(url, options, fileSize, chunkSize = HTTP_CHUNK_SIZE, proxyUrl) {
191
+ function createSkipTransform(skipBytes) {
192
+ let skipped = 0;
193
+ return new Transform({
194
+ transform(chunk, _encoding, callback) {
195
+ if (skipped < skipBytes) {
196
+ const remaining = skipBytes - skipped;
197
+ if (chunk.length <= remaining) {
198
+ // 整个 chunk 都需要跳过
199
+ skipped += chunk.length;
200
+ callback();
201
+ return;
202
+ }
203
+ else {
204
+ // 跳过部分 chunk
205
+ skipped = skipBytes;
206
+ callback(null, chunk.subarray(remaining));
207
+ return;
208
+ }
209
+ }
210
+ // 已经跳过足够的字节,直接传递
211
+ callback(null, chunk);
212
+ },
213
+ });
214
+ }
215
+ async function downloadFileInChunks(url, options, proxyUrl) {
119
216
  const tmpFile = join(tmpdir(), `filebox-${randomUUID()}`);
120
217
  const writeStream = createWriteStream(tmpFile);
218
+ const writeAbortController = new AbortController();
219
+ const signal = writeAbortController.signal;
220
+ const onWriteError = (err) => {
221
+ writeAbortController.abort(err instanceof Error ? err : new Error(String(err)));
222
+ };
223
+ writeStream.once('error', onWriteError);
121
224
  const allowStatusCode = [200, 206];
122
225
  const requestBaseOptions = {
123
226
  headers: {},
124
227
  ...options,
125
228
  };
126
- let chunkSeq = 0;
229
+ // 预期文件大小(初始为 null,从首次 206 响应中获取)
230
+ let expectedTotal = null;
127
231
  let start = 0;
128
- let end = 0;
129
232
  let downSize = 0;
130
233
  let retries = 3;
131
- while (downSize < fileSize) {
132
- end = Math.min(start + chunkSize, fileSize - 1);
133
- const range = `bytes=${start}-${end}`;
234
+ // 标识是否需要回退到非分片下载
235
+ let shouldFallback = false;
236
+ do {
237
+ // 每次循环前检查文件实际大小,作为真实的下载进度
238
+ // 这样在重试时可以从实际写入的位置继续,避免数据重复
239
+ try {
240
+ const fileStats = await stat(tmpFile);
241
+ const actualSize = fileStats.size;
242
+ if (actualSize > downSize) {
243
+ // 文件实际大小比记录的大,说明之前有部分写入
244
+ downSize = actualSize;
245
+ start = actualSize;
246
+ }
247
+ }
248
+ catch (error) {
249
+ // 文件不存在或无法访问,使用当前的 downSize
250
+ }
251
+ const range = `bytes=${start}-`;
134
252
  const requestOptions = Object.assign({}, requestBaseOptions);
135
253
  assert(requestOptions.headers, 'Errors that should not happen: Invalid headers');
136
254
  requestOptions.headers['Range'] = range;
255
+ // 每次请求创建独立的 AbortController 来管理当前请求的生命周期
256
+ const requestAbortController = new AbortController();
257
+ requestOptions.signal = requestAbortController.signal;
137
258
  try {
138
259
  const res = await fetch(url, requestOptions, proxyUrl);
139
260
  if (res.statusCode === 416) {
140
- unsupportedRangeDomains.add(new URL(url).hostname);
141
261
  // 某些云服务商对分片下载的支持可能不规范,需要保留一个回退的方式
142
- writeStream.close();
143
- await rm(tmpFile, { force: true });
144
- return await fetch(url, requestBaseOptions, proxyUrl);
262
+ shouldFallback = true;
263
+ break;
145
264
  }
146
265
  assert(allowStatusCode.includes(res.statusCode ?? 0), `Request failed with status code ${res.statusCode}`);
147
- assert(Number(res.headers['content-length']) > 0, 'Server returned 0 bytes of data');
148
- try {
149
- const { total } = parseContentRange(res.headers['content-range'] ?? '');
150
- if (total > 0 && total < fileSize) {
266
+ const contentLength = Number(res.headers['content-length']);
267
+ assert(contentLength > 0, 'Server returned 0 bytes of data');
268
+ // 206: 部分内容,继续分片下载
269
+ // 200: 完整内容,服务器不支持 range 或返回全部数据
270
+ if (res.statusCode === 206) {
271
+ // 206 响应必须包含有效的 Content-Range 头(RFC 7233)
272
+ const contentRange = res.headers['content-range'];
273
+ if (!contentRange) {
274
+ // Content-Range 缺失,服务器不规范,回退到非分片下载
275
+ shouldFallback = true;
276
+ break;
277
+ }
278
+ let end;
279
+ let total;
280
+ let actualStart;
281
+ try {
282
+ const parsed = parseContentRange(contentRange);
283
+ actualStart = parsed.start;
284
+ end = parsed.end;
285
+ total = parsed.total;
286
+ }
287
+ catch (error) {
288
+ // Content-Range 格式错误,服务器不规范,回退到非分片下载
289
+ shouldFallback = true;
290
+ break;
291
+ }
292
+ if (expectedTotal === null) {
293
+ // 首次获得文件总大小
151
294
  // 某些云服务商(如腾讯云)在 head 方法中返回的 size 是原图大小,但下载时返回的是压缩后的图片,会比原图小。
152
- // 这种在首次下载时虽然请求了原图大小的范围,可能比缩略图大,但会一次性返回完整的原图,而不是报错 416,通过修正 fileSize 跳出循环即可。
153
- fileSize = total;
295
+ // 这种在首次下载时虽然请求了原图大小的范围,可能比缩略图大,但会一次性返回完整的原图,而不是报错 416,通过修正 expectedTotal 跳出循环即可。
296
+ expectedTotal = total;
297
+ }
298
+ else if (total !== expectedTotal) {
299
+ // 服务器返回的文件总大小出现了变化
300
+ throw new Error(`File size mismatch: expected ${expectedTotal}, but server returned ${total}`);
154
301
  }
302
+ // 验证服务器返回的范围是否与请求匹配
303
+ if (actualStart !== start) {
304
+ if (actualStart > start) {
305
+ // 服务器跳过了部分数据,这是严重错误
306
+ throw new Error(`Range mismatch: requested start=${start}, but server returned start=${actualStart} (gap detected)`);
307
+ }
308
+ else {
309
+ // actualStart < start: 服务器返回了重叠数据,需要跳过前面的字节
310
+ const skipBytes = start - actualStart;
311
+ const skipTransform = createSkipTransform(skipBytes);
312
+ await pipeline(res, skipTransform, writeStream, { end: false, signal });
313
+ // 更新进度时使用我们请求的范围,而不是服务器返回的范围
314
+ downSize += end - actualStart + 1 - skipBytes;
315
+ start = downSize;
316
+ retries = 3; // 成功后重置重试次数
317
+ continue;
318
+ }
319
+ }
320
+ // 使用 pipeline,但不关闭 writeStream(继续下载下一个分片)
321
+ await pipeline(res, writeStream, { end: false, signal });
322
+ // pipeline 成功后才更新下载进度
323
+ // end 是最后一个字节的索引,下次从 end+1 开始
324
+ downSize += end - start + 1;
325
+ start = downSize;
155
326
  }
156
- catch (error) { }
157
- for await (const chunk of res) {
158
- assert(Buffer.isBuffer(chunk));
159
- downSize += chunk.length;
160
- writeStream.write(chunk);
327
+ else {
328
+ // 200: 服务器返回完整文件,不支持 range
329
+ if (start > 0) {
330
+ // 中途收到 200,服务器停止支持 range,标记并回退到普通下载
331
+ shouldFallback = true;
332
+ break;
333
+ }
334
+ // 首次请求返回 200,正常处理
335
+ await pipeline(res, writeStream, { signal });
336
+ downSize = contentLength;
337
+ break;
161
338
  }
162
- res.destroy();
339
+ // 成功后重置重试次数
340
+ retries = 3;
163
341
  }
164
342
  catch (error) {
165
- const err = error;
343
+ const err = error instanceof Error ? error : new Error(String(error));
166
344
  if (--retries <= 0) {
167
- writeStream.close();
168
- void rm(tmpFile, { force: true });
345
+ writeStream.destroy();
346
+ await rm(tmpFile, { force: true });
169
347
  throw new Error(`Download file with chunk failed! ${err.message}`, { cause: err });
170
348
  }
349
+ // 失败后等待一小段时间再重试
350
+ await new Promise(resolve => setTimeout(resolve, 100));
351
+ }
352
+ finally {
353
+ // 确保请求被清理(成功时也需要 abort 以释放资源)
354
+ requestAbortController.abort();
171
355
  }
172
- chunkSeq++;
173
- start = downSize;
356
+ } while (expectedTotal === null || downSize < expectedTotal);
357
+ // 统一处理回退到非分片下载的情况
358
+ if (shouldFallback) {
359
+ unsupportedRangeDomains.add(new URL(url).hostname);
360
+ writeStream.destroy();
361
+ try {
362
+ await once(writeStream, 'close', { signal });
363
+ }
364
+ catch { }
365
+ await rm(tmpFile, { force: true });
366
+ return await fetch(url, requestBaseOptions, proxyUrl);
367
+ }
368
+ writeStream.end();
369
+ try {
370
+ await once(writeStream, 'finish', { signal });
371
+ }
372
+ catch (e) {
373
+ const reason = signal.reason;
374
+ if (reason instanceof Error) {
375
+ throw reason;
376
+ }
377
+ throw e;
378
+ }
379
+ finally {
380
+ writeStream.off('error', onWriteError);
174
381
  }
175
- writeStream.close();
176
382
  const readStream = createReadStream(tmpFile);
177
- readStream
178
- .once('end', () => readStream.close())
179
- .once('close', () => {
180
- void rm(tmpFile, { force: true });
383
+ readStream.once('close', () => {
384
+ rm(tmpFile, { force: true }).catch(() => { });
181
385
  });
182
386
  return readStream;
183
387
  }
@@ -200,8 +404,8 @@ function parseContentRange(contentRange) {
200
404
  throw new Error('Invalid content range');
201
405
  }
202
406
  return {
203
- start: Number(matches[1]),
204
407
  end: Number(matches[2]),
408
+ start: Number(matches[1]),
205
409
  total: Number(matches[3]),
206
410
  };
207
411
  }
@@ -1 +1 @@
1
- {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":"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"}