@juzi/file-box 1.7.20 → 1.8.1

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 (47) hide show
  1. package/README.md +4 -2
  2. package/dist/cjs/src/config.d.ts +5 -5
  3. package/dist/cjs/src/config.d.ts.map +1 -1
  4. package/dist/cjs/src/config.js +7 -9
  5. package/dist/cjs/src/config.js.map +1 -1
  6. package/dist/cjs/src/file-box.js +1 -1
  7. package/dist/cjs/src/file-box.js.map +1 -1
  8. package/dist/cjs/src/misc.d.ts.map +1 -1
  9. package/dist/cjs/src/misc.js +185 -69
  10. package/dist/cjs/src/misc.js.map +1 -1
  11. package/dist/cjs/src/misc.spec.js +26 -17
  12. package/dist/cjs/src/misc.spec.js.map +1 -1
  13. package/dist/cjs/src/version.d.ts.map +1 -1
  14. package/dist/cjs/src/version.js +1 -1
  15. package/dist/cjs/src/version.js.map +1 -1
  16. package/dist/cjs/tests/chunk-download.spec.js +62 -90
  17. package/dist/cjs/tests/chunk-download.spec.js.map +1 -1
  18. package/dist/cjs/tests/misc-error-handling.spec.js +134 -30
  19. package/dist/cjs/tests/misc-error-handling.spec.js.map +1 -1
  20. package/dist/cjs/tests/network-timeout.spec.js +101 -105
  21. package/dist/cjs/tests/network-timeout.spec.js.map +1 -1
  22. package/dist/esm/src/config.d.ts +5 -5
  23. package/dist/esm/src/config.d.ts.map +1 -1
  24. package/dist/esm/src/config.js +6 -8
  25. package/dist/esm/src/config.js.map +1 -1
  26. package/dist/esm/src/file-box.js +2 -2
  27. package/dist/esm/src/file-box.js.map +1 -1
  28. package/dist/esm/src/misc.d.ts.map +1 -1
  29. package/dist/esm/src/misc.js +187 -71
  30. package/dist/esm/src/misc.js.map +1 -1
  31. package/dist/esm/src/misc.spec.js +26 -17
  32. package/dist/esm/src/misc.spec.js.map +1 -1
  33. package/dist/esm/src/version.d.ts.map +1 -1
  34. package/dist/esm/src/version.js +1 -1
  35. package/dist/esm/src/version.js.map +1 -1
  36. package/dist/esm/tests/chunk-download.spec.js +62 -90
  37. package/dist/esm/tests/chunk-download.spec.js.map +1 -1
  38. package/dist/esm/tests/misc-error-handling.spec.js +134 -30
  39. package/dist/esm/tests/misc-error-handling.spec.js.map +1 -1
  40. package/dist/esm/tests/network-timeout.spec.js +103 -107
  41. package/dist/esm/tests/network-timeout.spec.js.map +1 -1
  42. package/package.json +2 -2
  43. package/src/config.ts +6 -12
  44. package/src/file-box.ts +2 -2
  45. package/src/misc.spec.ts +29 -14
  46. package/src/misc.ts +200 -75
  47. package/src/version.ts +1 -1
package/README.md CHANGED
@@ -480,9 +480,11 @@ Environment variables can be used to control some behavior.
480
480
 
481
481
  - `FILEBOX_HTTP_REQUEST_TIMEOUT` [default=10000] The timeout period for establishing a communication request with the server. For example, if the network is unavailable or the delay is too high, communication cannot be successfully established.
482
482
  - `FILEBOX_HTTP_RESPONSE_TIMEOUT` [default=60000] Socket idle timeout when FileBox downloads data from URL. For example, when the network is temporarily interrupted, the request will be considered as failed after waiting for a specified time.
483
+ - `FILEBOX_READY_RETRY` [default=3] Maximum retry count when calling `ready()` method. If an error occurs while preparing the FileBox (e.g., fetching remote file metadata), it will retry up to this number of times before throwing an error.
483
484
  - ~~`FILEBOX_HTTP_TIMEOUT` [default=60000]~~ **Deprecated!** Please use `FILEBOX_HTTP_RESPONSE_TIMEOUT`.
484
- - `NO_SLICE_DOWN` [default=false] Whether to turn off slice downloading. If the network is unstable, an error while downloading the file will cause the file download to fail. If it is not closed, the file will be divided into multiple fragments for downloading, and breakpoint re-downloading is supported.
485
- - `HTTP_CHUNK_SIZE` [default=524288] When downloading a file using slicing, the number of bytes in each slice.
485
+ - ~~`FILE_BOX_READY_RETRY` [default=3]~~ **Deprecated!** Please use `FILEBOX_READY_RETRY` (with underscore naming for consistency).
486
+ - ~~`FILEBOX_NO_SLICE_DOWN` [default=false]~~ **Removed!** Chunked download now automatically falls back to non-chunked mode when servers don't support range requests. No manual configuration needed.
487
+ - ~~`FILEBOX_HTTP_CHUNK_SIZE` [default=524288]~~ **Deprecated!** Chunk size is no longer configurable. The implementation now uses open-ended range requests (`bytes=start-`) for automatic chunk management.
486
488
 
487
489
  ## SCHEMAS
488
490
 
@@ -1,8 +1,8 @@
1
1
  /// <reference path="../../../src/typings.d.ts" />
2
2
  export { VERSION } from './version.js';
3
- export declare const HTTP_REQUEST_TIMEOUT: number;
4
- export declare const HTTP_RESPONSE_TIMEOUT: number;
5
- export declare const NO_SLICE_DOWN: boolean;
6
- export declare const HTTP_CHUNK_SIZE: number;
7
- export declare const READY_RETRY: number;
3
+ export declare const CONFIG: {
4
+ HTTP_REQUEST_TIMEOUT: number;
5
+ HTTP_RESPONSE_TIMEOUT: number;
6
+ READY_RETRY: number;
7
+ };
8
8
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,eAAO,MAAM,oBAAoB,QACnB,CAAA;AAEd,eAAO,MAAM,qBAAqB,QACpB,CAAA;AAEd,eAAO,MAAM,aAAa,SAAkD,CAAA;AAE5E,eAAO,MAAM,eAAe,QACb,CAAA;AAEf,eAAO,MAAM,WAAW,QAAmD,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,eAAO,MAAM,MAAM;;;;CAIlB,CAAA"}
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.READY_RETRY = exports.HTTP_CHUNK_SIZE = exports.NO_SLICE_DOWN = exports.HTTP_RESPONSE_TIMEOUT = exports.HTTP_REQUEST_TIMEOUT = exports.VERSION = void 0;
3
+ exports.CONFIG = exports.VERSION = void 0;
4
4
  /// <reference path="./typings.d.ts" />
5
5
  var version_js_1 = require("./version.js");
6
6
  Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return version_js_1.VERSION; } });
7
- exports.HTTP_REQUEST_TIMEOUT = Number(process.env['FILEBOX_HTTP_REQUEST_TIMEOUT'])
8
- || 10 * 1000;
9
- exports.HTTP_RESPONSE_TIMEOUT = Number(process.env['FILEBOX_HTTP_RESPONSE_TIMEOUT'] ?? process.env['FILEBOX_HTTP_TIMEOUT'])
10
- || 60 * 1000;
11
- exports.NO_SLICE_DOWN = process.env['FILEBOX_NO_SLICE_DOWN'] === 'true';
12
- exports.HTTP_CHUNK_SIZE = Number(process.env['FILEBOX_HTTP_CHUNK_SIZE'])
13
- || 1024 * 512;
14
- exports.READY_RETRY = Number(process.env['FILE_BOX_READY_RETRY']) || 3;
7
+ // 导出可变配置对象,支持测试时动态修改
8
+ exports.CONFIG = {
9
+ HTTP_REQUEST_TIMEOUT: Number(process.env['FILEBOX_HTTP_REQUEST_TIMEOUT']) || 10 * 1000,
10
+ HTTP_RESPONSE_TIMEOUT: Number(process.env['FILEBOX_HTTP_RESPONSE_TIMEOUT'] ?? process.env['FILEBOX_HTTP_TIMEOUT']) || 60 * 1000,
11
+ READY_RETRY: Number(process.env['FILEBOX_READY_RETRY'] ?? process.env['FILE_BOX_READY_RETRY']) || 3,
12
+ };
15
13
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,2CAAsC;AAA7B,qGAAA,OAAO,OAAA;AAEH,QAAA,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;OAClF,EAAE,GAAG,IAAI,CAAA;AAED,QAAA,qBAAqB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;OAC3H,EAAE,GAAG,IAAI,CAAA;AAED,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,MAAM,CAAA;AAE/D,QAAA,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;OACxE,IAAI,GAAG,GAAG,CAAA;AAEF,QAAA,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,2CAAsC;AAA7B,qGAAA,OAAO,OAAA;AAEhB,qBAAqB;AACR,QAAA,MAAM,GAAG;IACpB,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI;IACtF,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI;IAC/H,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC;CACpG,CAAA"}
@@ -469,7 +469,7 @@ class FileBox {
469
469
  }
470
470
  catch (e) {
471
471
  tryCount++;
472
- if (tryCount >= config_js_1.READY_RETRY) {
472
+ if (tryCount >= config_js_1.CONFIG.READY_RETRY) {
473
473
  throw e;
474
474
  }
475
475
  }
@@ -1 +1 @@
1
- {"version":3,"file":"file-box.js","sourceRoot":"","sources":["../../../src/file-box.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-box.js","sourceRoot":"","sources":["../../../src/file-box.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,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,CAwB3H;AAsLD,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;AAiCtC,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,CA6B/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,CAwB3H;AA4SD,wBAAsB,cAAc,CAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvE"}
@@ -14,6 +14,9 @@ const https_1 = __importDefault(require("https"));
14
14
  const https_proxy_agent_1 = require("https-proxy-agent");
15
15
  const os_1 = require("os");
16
16
  const path_1 = require("path");
17
+ const stream_1 = require("stream");
18
+ const promises_2 = require("stream/promises");
19
+ const promises_3 = require("timers/promises");
17
20
  const url_1 = require("url");
18
21
  const config_js_1 = require("./config.js");
19
22
  const protocolMap = {
@@ -22,6 +25,13 @@ const protocolMap = {
22
25
  };
23
26
  const noop = () => { };
24
27
  const unsupportedRangeDomains = new Set();
28
+ // 自定义 Error:标记需要回退到非分片下载
29
+ class FallbackError extends Error {
30
+ constructor(reason) {
31
+ super(`Fallback required: ${reason}`);
32
+ this.name = 'FallbackError';
33
+ }
34
+ }
25
35
  function getProtocol(protocol) {
26
36
  (0, assert_1.default)(protocolMap[protocol], new Error('unknown protocol: ' + protocol));
27
37
  return protocolMap[protocol];
@@ -55,7 +65,6 @@ async function httpHeadHeader(url, headers = {}, proxyUrl) {
55
65
  }
56
66
  return res.headers;
57
67
  }
58
- // console.log('302 found for ' + url)
59
68
  if (!res.headers.location) {
60
69
  throw new Error('302 found but no location!');
61
70
  }
@@ -82,22 +91,22 @@ async function httpStream(url, headers = {}, proxyUrl) {
82
91
  if (headHeaders.location) {
83
92
  url = headHeaders.location;
84
93
  }
85
- const { protocol, hostname } = new url_1.URL(url);
94
+ const { protocol, hostname, port } = new url_1.URL(url);
86
95
  getProtocol(protocol);
87
96
  const options = {
88
97
  headers: { ...headers },
89
98
  method: 'GET',
90
99
  };
91
- const fileSize = Number(headHeaders['content-length']);
92
- // 运行时读取 env:方便测试/调用方动态调整
93
- const noSliceDown = process.env['FILEBOX_NO_SLICE_DOWN'] === 'true';
94
- const chunkSize = Number(process.env['FILEBOX_HTTP_CHUNK_SIZE']) || config_js_1.HTTP_CHUNK_SIZE;
95
- if (!unsupportedRangeDomains.has(hostname) && !noSliceDown && headHeaders['accept-ranges'] === 'bytes' && fileSize > chunkSize) {
96
- return await downloadFileInChunks(url, options, fileSize, chunkSize, proxyUrl);
97
- }
98
- else {
99
- return await fetch(url, options, proxyUrl);
100
- }
100
+ // 使用 hostname:port 作为域名标识,避免不同端口的服务互相影响
101
+ const defaultPort = protocol === 'https:' ? '443' : '80';
102
+ const hostKey = `${hostname}:${port || defaultPort}`;
103
+ // 直接尝试分片下载,不检查 Accept-Ranges fileSize
104
+ // 原因:
105
+ // 1. 有些服务器 HEAD 不返回 Accept-Ranges 但实际支持分片
106
+ // 2. 有些服务器 HEAD 返回 fileSize=0 但实际支持分片
107
+ // downloadFileInChunks 内部有完善的回退机制处理不支持的情况
108
+ const result = await downloadFileInChunks(url, options, proxyUrl, hostKey);
109
+ return result;
101
110
  }
102
111
  exports.httpStream = httpStream;
103
112
  async function fetch(url, options, proxyUrl) {
@@ -131,11 +140,11 @@ async function fetch(url, options, proxyUrl) {
131
140
  req.off('error', noop);
132
141
  })
133
142
  // request timeout:只用于“拿到 response 之前”(连接/握手/首包)
134
- .setTimeout(config_js_1.HTTP_REQUEST_TIMEOUT, () => {
143
+ .setTimeout(config_js_1.CONFIG.HTTP_REQUEST_TIMEOUT, () => {
135
144
  // 已经拿到 response 时,不要再用 request timeout 误伤(会导致 aborted/ECONNRESET)
136
145
  if (res)
137
146
  return;
138
- abortController.abort(new Error(`FileBox: Http request timeout (${config_js_1.HTTP_REQUEST_TIMEOUT})!`));
147
+ abortController.abort(new Error(`FileBox: Http request timeout (${config_js_1.CONFIG.HTTP_REQUEST_TIMEOUT})!`));
139
148
  })
140
149
  .end();
141
150
  try {
@@ -151,7 +160,6 @@ async function fetch(url, options, proxyUrl) {
151
160
  signal.throwIfAborted();
152
161
  }
153
162
  catch (e) {
154
- // once(...) 被 signal abort 时通常会抛 AbortError;优先抛出 abort(reason) 的真实原因
155
163
  const reason = signal.reason;
156
164
  const err = reason instanceof Error
157
165
  ? reason
@@ -190,14 +198,38 @@ async function fetch(url, options, proxyUrl) {
190
198
  signal.removeEventListener('abort', onAbort);
191
199
  res.off('error', noop);
192
200
  })
193
- .setTimeout(config_js_1.HTTP_RESPONSE_TIMEOUT, () => {
194
- abortController.abort(new Error(`FileBox: Http response timeout (${config_js_1.HTTP_RESPONSE_TIMEOUT})!`));
201
+ .setTimeout(config_js_1.CONFIG.HTTP_RESPONSE_TIMEOUT, () => {
202
+ abortController.abort(new Error(`FileBox: Http response timeout (${config_js_1.CONFIG.HTTP_RESPONSE_TIMEOUT})!`));
195
203
  });
196
204
  return res;
197
205
  }
198
- async function downloadFileInChunks(url, options, fileSize, chunkSize = config_js_1.HTTP_CHUNK_SIZE, proxyUrl) {
206
+ function createSkipTransform(skipBytes) {
207
+ let skipped = 0;
208
+ return new stream_1.Transform({
209
+ transform(chunk, _encoding, callback) {
210
+ if (skipped < skipBytes) {
211
+ const remaining = skipBytes - skipped;
212
+ if (chunk.length <= remaining) {
213
+ // 整个 chunk 都需要跳过
214
+ skipped += chunk.length;
215
+ callback();
216
+ return;
217
+ }
218
+ else {
219
+ // 跳过部分 chunk
220
+ skipped = skipBytes;
221
+ callback(null, chunk.subarray(remaining));
222
+ return;
223
+ }
224
+ }
225
+ // 已经跳过足够的字节,直接传递
226
+ callback(null, chunk);
227
+ },
228
+ });
229
+ }
230
+ async function downloadFileInChunks(url, options, proxyUrl, hostname) {
199
231
  const tmpFile = (0, path_1.join)((0, os_1.tmpdir)(), `filebox-${(0, crypto_1.randomUUID)()}`);
200
- const writeStream = (0, fs_1.createWriteStream)(tmpFile);
232
+ let writeStream = (0, fs_1.createWriteStream)(tmpFile);
201
233
  const writeAbortController = new AbortController();
202
234
  const signal = writeAbortController.signal;
203
235
  const onWriteError = (err) => {
@@ -209,81 +241,165 @@ async function downloadFileInChunks(url, options, fileSize, chunkSize = config_j
209
241
  headers: {},
210
242
  ...options,
211
243
  };
212
- let chunkSeq = 0;
244
+ // 预期文件大小(初始为 null,从首次 206 响应中获取)
245
+ let expectedTotal = null;
213
246
  let start = 0;
214
- let end = 0;
215
247
  let downSize = 0;
216
248
  let retries = 3;
217
- while (downSize < fileSize) {
218
- end = Math.min(start + chunkSize, fileSize - 1);
219
- const range = `bytes=${start}-${end}`;
249
+ // 控制是否使用 Range 请求(根据域名黑名单初始化)
250
+ let useRange = !unsupportedRangeDomains.has(hostname);
251
+ let useChunked = false;
252
+ do {
253
+ // 每次循环前检查文件实际大小,作为真实的下载进度
254
+ // 这样在重试时可以从实际写入的位置继续,避免数据重复
255
+ const fileStats = await (0, promises_1.stat)(tmpFile).then(stats => stats.size).catch(() => 0);
256
+ if (fileStats !== downSize) {
257
+ // 文件实际大小与记录的不一致,使用实际大小
258
+ downSize = fileStats;
259
+ start = fileStats;
260
+ }
220
261
  const requestOptions = Object.assign({}, requestBaseOptions);
221
262
  (0, assert_1.default)(requestOptions.headers, 'Errors that should not happen: Invalid headers');
222
- requestOptions.headers['Range'] = range;
263
+ const headers = requestOptions.headers;
264
+ // 根据 useRange flag 决定是否添加 Range header
265
+ if (useRange) {
266
+ const range = `bytes=${start}-`;
267
+ headers['Range'] = range;
268
+ }
269
+ else {
270
+ delete headers['Range'];
271
+ }
272
+ let res;
223
273
  try {
224
- const res = await fetch(url, requestOptions, proxyUrl);
274
+ res = await fetch(url, requestOptions, proxyUrl);
225
275
  if (res.statusCode === 416) {
226
- unsupportedRangeDomains.add(new url_1.URL(url).hostname);
227
- // 某些云服务商对分片下载的支持可能不规范,需要保留一个回退的方式
228
- writeStream.destroy();
229
- try {
230
- await (0, events_1.once)(writeStream, 'close', { signal });
231
- }
232
- catch { }
233
- await (0, promises_1.rm)(tmpFile, { force: true });
234
- return await fetch(url, requestBaseOptions, proxyUrl);
276
+ // 416: Range Not Satisfiable,服务器不支持此范围或文件大小不匹配
277
+ throw new FallbackError('416 Range Not Satisfiable');
235
278
  }
236
279
  (0, assert_1.default)(allowStatusCode.includes(res.statusCode ?? 0), `Request failed with status code ${res.statusCode}`);
237
- (0, assert_1.default)(Number(res.headers['content-length']) > 0, 'Server returned 0 bytes of data');
238
- try {
239
- const { total } = parseContentRange(res.headers['content-range'] ?? '');
240
- if (total > 0 && total < fileSize) {
280
+ const contentLength = Number(res.headers['content-length']) || 0;
281
+ (0, assert_1.default)(contentLength >= 0, `Server returned ${contentLength} bytes of data`);
282
+ // 206: 部分内容,继续分片下载
283
+ // 200: 完整内容,服务器不支持 range 或返回全部数据
284
+ if (res.statusCode === 206) {
285
+ // 206 响应必须包含有效的 Content-Range 头(RFC 7233)
286
+ const contentRange = res.headers['content-range'];
287
+ if (!contentRange) {
288
+ // Content-Range 缺失,服务器不规范,回退到非分片下载
289
+ throw new FallbackError('Missing Content-Range header');
290
+ }
291
+ let end;
292
+ let total;
293
+ let actualStart;
294
+ try {
295
+ const parsed = parseContentRange(contentRange);
296
+ actualStart = parsed.start;
297
+ end = parsed.end;
298
+ total = parsed.total;
299
+ }
300
+ catch (error) {
301
+ // Content-Range 格式错误,服务器不规范,回退到非分片下载
302
+ throw new FallbackError(`Invalid Content-Range: ${contentRange}`);
303
+ }
304
+ if (expectedTotal === null) {
305
+ // 首次获得文件总大小
241
306
  // 某些云服务商(如腾讯云)在 head 方法中返回的 size 是原图大小,但下载时返回的是压缩后的图片,会比原图小。
242
- // 这种在首次下载时虽然请求了原图大小的范围,可能比缩略图大,但会一次性返回完整的原图,而不是报错 416,通过修正 fileSize 跳出循环即可。
243
- fileSize = total;
307
+ // 这种在首次下载时虽然请求了原图大小的范围,可能比缩略图大,但会一次性返回完整的原图,而不是报错 416,通过修正 expectedTotal 跳出循环即可。
308
+ expectedTotal = total;
244
309
  }
245
- }
246
- catch (error) { }
247
- for await (const chunk of res) {
248
- (0, assert_1.default)(Buffer.isBuffer(chunk));
249
- downSize += chunk.length;
250
- if (!writeStream.write(chunk)) {
251
- try {
252
- await (0, events_1.once)(writeStream, 'drain', { signal });
310
+ else if (total !== expectedTotal) {
311
+ // 服务器返回的文件总大小出现了变化
312
+ throw new Error(`File size mismatch: expected ${expectedTotal}, but server returned ${total}`);
313
+ }
314
+ // 标记使用了分片下载
315
+ useChunked = true;
316
+ // 验证服务器返回的范围是否与请求匹配
317
+ if (actualStart !== start) {
318
+ if (actualStart > start) {
319
+ // 服务器跳过了部分数据,这是严重错误
320
+ throw new Error(`Range mismatch: requested start=${start}, but server returned start=${actualStart} (gap detected)`);
253
321
  }
254
- catch (e) {
255
- const reason = signal.reason;
256
- throw reason instanceof Error ? reason : e;
322
+ else {
323
+ // actualStart < start: 服务器返回了重叠数据,需要跳过前面的字节
324
+ const skipBytes = start - actualStart;
325
+ const skipTransform = createSkipTransform(skipBytes);
326
+ await (0, promises_2.pipeline)(res, skipTransform, writeStream, { end: false, signal });
327
+ // 更新进度时使用我们请求的范围,而不是服务器返回的范围
328
+ downSize += end - actualStart + 1 - skipBytes;
329
+ start = downSize;
330
+ retries = 3; // 成功后重置重试次数
331
+ continue;
257
332
  }
258
333
  }
334
+ // 使用 pipeline,但不关闭 writeStream(继续下载下一个分片)
335
+ await (0, promises_2.pipeline)(res, writeStream, { end: false, signal });
336
+ // pipeline 成功后才更新下载进度
337
+ // end 是最后一个字节的索引,下次从 end+1 开始
338
+ downSize += end - start + 1;
339
+ start = downSize;
259
340
  }
260
- res.destroy();
341
+ else if (res.statusCode === 200) {
342
+ // 200: 服务器返回完整文件
343
+ if (useChunked || start > 0) {
344
+ // 之前以分片模式下载过数据
345
+ writeStream.destroy();
346
+ await (0, promises_1.rm)(tmpFile, { force: true }).catch(() => { });
347
+ writeStream = (0, fs_1.createWriteStream)(tmpFile);
348
+ writeStream.on('error', onWriteError);
349
+ start = 0;
350
+ downSize = 0;
351
+ }
352
+ // 处理完整文件响应
353
+ expectedTotal = contentLength;
354
+ await (0, promises_2.pipeline)(res, writeStream, { end: false, signal });
355
+ downSize = contentLength;
356
+ break;
357
+ }
358
+ else {
359
+ throw new Error(`Unexpected status code: ${res.statusCode}`);
360
+ }
361
+ // 成功后重置重试次数
362
+ retries = 3;
261
363
  }
262
364
  catch (error) {
365
+ if (error instanceof FallbackError) {
366
+ // 回退逻辑:记录域名、重置状态,在下次循环中以非 range 模式请求
367
+ unsupportedRangeDomains.add(hostname);
368
+ // 关闭当前写入流
369
+ writeStream.destroy();
370
+ await (0, promises_1.rm)(tmpFile, { force: true }).catch(() => { });
371
+ // 检查是否已经是非 Range 模式,避免无限回退
372
+ if (!useRange) {
373
+ // 已经是非 Range 模式还失败,无法继续
374
+ throw new Error(`Download failed even in non-chunked mode: ${error.message}`);
375
+ }
376
+ writeStream = (0, fs_1.createWriteStream)(tmpFile);
377
+ writeStream.once('error', onWriteError);
378
+ // 重置所有状态
379
+ expectedTotal = null;
380
+ downSize = 0;
381
+ start = 0;
382
+ useChunked = false;
383
+ useRange = false;
384
+ retries = 3;
385
+ continue;
386
+ }
387
+ // 普通错误:重试
263
388
  const err = error instanceof Error ? error : new Error(String(error));
264
389
  if (--retries <= 0) {
265
390
  writeStream.destroy();
266
- void (0, promises_1.rm)(tmpFile, { force: true });
391
+ await (0, promises_1.rm)(tmpFile, { force: true }).catch(() => { });
267
392
  throw new Error(`Download file with chunk failed! ${err.message}`, { cause: err });
268
393
  }
394
+ // 失败后等待一小段时间再重试
395
+ await (0, promises_3.setTimeout)(100);
269
396
  }
270
- chunkSeq++;
271
- start = downSize;
272
- }
273
- writeStream.end();
274
- try {
397
+ } while (expectedTotal === null || downSize < expectedTotal);
398
+ if (!writeStream.destroyed && !writeStream.writableFinished) {
399
+ writeStream.end();
275
400
  await (0, events_1.once)(writeStream, 'finish', { signal });
276
401
  }
277
- catch (e) {
278
- const reason = signal.reason;
279
- if (reason instanceof Error) {
280
- throw reason;
281
- }
282
- throw e;
283
- }
284
- finally {
285
- writeStream.off('error', onWriteError);
286
- }
402
+ writeStream.off('error', onWriteError);
287
403
  const readStream = (0, fs_1.createReadStream)(tmpFile);
288
404
  readStream.once('close', () => {
289
405
  (0, promises_1.rm)(tmpFile, { force: true }).catch(() => { });
@@ -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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"}