@hyzyn/dsh-tty 0.18.2 → 0.19.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.
- package/README.en.md +85 -34
- package/README.md +65 -29
- package/client.js +51 -37
- package/lib/index.d.ts +367 -1
- package/lib/index.js +420 -138
- package/lib/index.js.map +1 -1
- package/lib/known-hosts.d.ts +7 -1
- package/lib/known-hosts.js +26 -12
- package/lib/known-hosts.js.map +1 -1
- package/lib/probe.d.ts +2 -2
- package/lib/probe.js +8 -36
- package/lib/probe.js.map +1 -1
- package/lib/sftp.d.ts +63 -10
- package/lib/sftp.js +244 -44
- package/lib/sftp.js.map +1 -1
- package/lib/shell-integration.js +33 -13
- package/lib/shell-integration.js.map +1 -1
- package/lib/ssh.d.ts +21 -7
- package/lib/ssh.js +114 -19
- package/lib/ssh.js.map +1 -1
- package/lib/tunnels.js +67 -13
- package/lib/tunnels.js.map +1 -1
- package/package.json +7 -2
- package/scripts/build-client.mjs +30 -0
- package/scripts/integration.mjs +1691 -0
- package/scripts/lib/test-sshd.mjs +314 -0
- package/scripts/live.mjs +68 -0
- package/scripts/preview/harness.html +75 -0
- package/scripts/preview/harness.js +875 -0
- package/scripts/preview/mock-host.js +365 -0
- package/scripts/preview.mjs +502 -0
- package/scripts/probe-route-smoke.mjs +111 -0
- package/scripts/probe-smoke.mjs +143 -0
- package/scripts/probe.mjs +240 -0
- package/scripts/sftplimits-smoke.mjs +92 -0
- package/scripts/ssh-smoke.mjs +593 -0
- package/scripts/tui-smoke.mjs +112 -0
- package/scripts/windows-smoke.mjs +179 -0
package/lib/sftp.js
CHANGED
|
@@ -28,6 +28,29 @@ import { applyHostKeyPolicy, buildConnectConfig, sshTarget } from './ssh.js';
|
|
|
28
28
|
const SFTP_IDLE_MS = 120_000;
|
|
29
29
|
/** 扫描周期。 */
|
|
30
30
|
const SFTP_SWEEP_MS = 30_000;
|
|
31
|
+
/** 分片孤儿回收阈值:比这更老的 `.dsh-part-*` 视为崩溃残留,下次上传同目录时顺手清理。 */
|
|
32
|
+
const STALE_PART_MS = 24 * 60 * 60 * 1000;
|
|
33
|
+
/**
|
|
34
|
+
* remove 的路径护栏(0.19.0,纵深防御):递归删除按账号权限生效、无二次确认、
|
|
35
|
+
* 无干跑——根目录 / home / 纯相对跳跃段一次调用就是整树删除。挂在 SftpManager
|
|
36
|
+
* 层而非只在 agent 工具层,loopback 上的构造请求(面板路由透传原始 path)同样
|
|
37
|
+
* 被拦;「必然是误操作」的形态才拒,具体某个子目录仍由调用方负责。
|
|
38
|
+
*/
|
|
39
|
+
export function assertRemovableRemotePath(raw) {
|
|
40
|
+
const path = raw.trim();
|
|
41
|
+
if (path === '')
|
|
42
|
+
throw new Error('path 必须是非空字符串');
|
|
43
|
+
if (path === '/' || path.replace(/\/+$/, '') === '')
|
|
44
|
+
throw new Error('拒绝删除:path 指向根目录(整树删除不可恢复)');
|
|
45
|
+
if (path === '~' || path.startsWith('~/') || path.replace(/\/+$/, '') === '/home') {
|
|
46
|
+
throw new Error('拒绝删除:path 指向 home 目录(~)——如确需删除其中内容,请指定具体子路径');
|
|
47
|
+
}
|
|
48
|
+
const segments = path.replace(/\/+$/, '').split('/').filter((seg) => seg !== '');
|
|
49
|
+
if (segments.some((seg) => seg === '.' || seg === '..')) {
|
|
50
|
+
throw new Error('拒绝删除:path 含 . / .. 相对段(按服务端语义会解析到意外位置)——请先解析出绝对路径');
|
|
51
|
+
}
|
|
52
|
+
return path;
|
|
53
|
+
}
|
|
31
54
|
/** OpenSSH 等 server 的 readdir 会带回 '.'/'..':目录列表与递归删除都要跳过。 */
|
|
32
55
|
const DOT_ENTRIES = new Set(['.', '..']);
|
|
33
56
|
/** 远程路径拼接(POSIX 语义;本机路径拼接用 node:path)。 */
|
|
@@ -221,67 +244,207 @@ export class SftpManager {
|
|
|
221
244
|
/**
|
|
222
245
|
* 删除文件 / 目录。目录不带 recursive 时走 rmdir(非空会明确报错);
|
|
223
246
|
* 带 recursive 时 readdir 深度优先逐个 unlink/rmdir。符号链接一律按
|
|
224
|
-
* 文件 unlink
|
|
247
|
+
* 文件 unlink(不跟随)。入口过 assertRemovableRemotePath 护栏(根目录 /
|
|
248
|
+
* home / 相对跳跃段直接拒绝——agent 工具与面板 HTTP 路由共用本方法)。
|
|
225
249
|
*/
|
|
226
250
|
async remove(spec, path, recursive) {
|
|
227
251
|
const sftp = await this.acquire(spec);
|
|
228
|
-
await this.removeEntry(sftp, path
|
|
252
|
+
await this.removeEntry(sftp, assertRemovableRemotePath(path), recursive);
|
|
229
253
|
}
|
|
230
|
-
/**
|
|
231
|
-
|
|
254
|
+
/**
|
|
255
|
+
* 下载:返回只读流(路由负责 pipe 到 HTTP 响应与销毁)。
|
|
256
|
+
* 先 stat 探测(0.19.0):「路径不存在 / 是目录」在这里变成明确报错——
|
|
257
|
+
* 此前 stat 失败被吞、路由已 writeHead(200),客户端见 res.ok===true 后以
|
|
258
|
+
* TypeError 断流收场,状态行只剩「Failed to fetch」这类无信息文案。
|
|
259
|
+
*/
|
|
260
|
+
async openDownload(spec, path, options) {
|
|
232
261
|
const sftp = await this.acquire(spec);
|
|
233
262
|
const target = path.trim();
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
});
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
/* stat 失败不阻塞下载(content-length 缺省,流式传输照常) */
|
|
244
|
-
}
|
|
245
|
-
const stream = sftp.createReadStream(target);
|
|
263
|
+
const stats = await new Promise((resolve, reject) => {
|
|
264
|
+
sftp.stat(target, (error, found) => (error != null ? reject(new Error(`远程路径不存在或不可访问: ${target}(${error.message})`)) : resolve(found)));
|
|
265
|
+
});
|
|
266
|
+
if (stats.isDirectory())
|
|
267
|
+
throw new Error(`${target} 是目录:单文件下载不支持目录,请用面板双栏「← 传输」或先打包`);
|
|
268
|
+
const size = stats.isFile() ? Number(stats.size ?? 0) : null;
|
|
269
|
+
const stream = options?.offset !== undefined && options.offset > 0
|
|
270
|
+
? sftp.createReadStream(target, { start: options.offset })
|
|
271
|
+
: sftp.createReadStream(target);
|
|
246
272
|
return { stream, size };
|
|
247
273
|
}
|
|
248
|
-
/**
|
|
274
|
+
/**
|
|
275
|
+
* 上传:返回可写流与完成信号(路由 pipe 请求体,await done 后回包)。
|
|
276
|
+
*
|
|
277
|
+
* 覆盖写原子化(0.19.0):`flags:'w'` 直接写目标会先截断原文件,途中任何
|
|
278
|
+
* 失败(磁盘满 / 权限变化 / 通道断 / 客户端断连)都留下「原文件被毁 + 半截
|
|
279
|
+
* 新文件」。改为写同目录临时分片 `.dsh-part-<uuid>`,流正常收尾后 posix-rename
|
|
280
|
+
* (不支持该扩展的 server 退 unlink+rename)覆盖目标;失败 / 取消统一清理
|
|
281
|
+
* 分片,原文件全程不受影响。done 只在分片真正落盘(rename 成功)后 resolve。
|
|
282
|
+
*/
|
|
249
283
|
async openUpload(spec, path, append = false) {
|
|
250
284
|
const sftp = await this.acquire(spec);
|
|
251
|
-
const
|
|
285
|
+
const target = path.trim();
|
|
286
|
+
if (append) {
|
|
287
|
+
const stream = sftp.createWriteStream(target, { flags: 'a' });
|
|
288
|
+
const done = this.streamDone(stream, () => { });
|
|
289
|
+
done.catch(() => { });
|
|
290
|
+
return { stream, done, writePath: target };
|
|
291
|
+
}
|
|
292
|
+
const partPath = `${target}.dsh-part-${randomUUID()}`;
|
|
293
|
+
// 顺手回收崩溃残留(0.19.0):进程崩溃 / 断电时 dropPart 来不及执行,远端会
|
|
294
|
+
// 留下 `.dsh-part-*` 孤儿。只清同目标前缀且超过 STALE_PART_MS 的(并发中的
|
|
295
|
+
// 新分片不受影响);readdir/unlink 失败静默——清理是尽力而为。
|
|
296
|
+
void this.reapStaleParts(sftp, target);
|
|
297
|
+
const stream = sftp.createWriteStream(partPath, { flags: 'w' });
|
|
252
298
|
const done = new Promise((resolve, reject) => {
|
|
299
|
+
let settled = false;
|
|
300
|
+
const dropPart = () => {
|
|
301
|
+
// 分片清理是尽力而为:失败只留日志(下一次覆盖写不受影响)
|
|
302
|
+
sftp.unlink(partPath, (error) => {
|
|
303
|
+
if (error !== undefined && error !== null) {
|
|
304
|
+
this.logger.warn(`[dsh-tty] sftp 分片清理失败(${partPath}): ${error.message}`);
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
};
|
|
253
308
|
stream.on('error', (error) => {
|
|
309
|
+
settled = true;
|
|
310
|
+
dropPart();
|
|
254
311
|
reject(new Error(`上传写入失败: ${error.message}`));
|
|
255
312
|
});
|
|
256
|
-
stream.on('close', () =>
|
|
313
|
+
stream.on('close', () => {
|
|
314
|
+
if (settled)
|
|
315
|
+
return;
|
|
316
|
+
settled = true;
|
|
317
|
+
// 「写入完整」判据 = writableEnded(调用方走过 end())。ssh2 的
|
|
318
|
+
// WriteStream 在 _final 里先 destroy 再 cb,'finish' 事件不会发出;
|
|
319
|
+
// 而它的 'close' 在正常路径上要等 server ack handle close 才发——
|
|
320
|
+
// 未 end 就 destroy(取消 / 管线中止)时 writableEnded 为 false,
|
|
321
|
+
// 据此区分「完整收尾」与「半途而废」,绝不把半截分片 rename 覆盖目标。
|
|
322
|
+
if (stream.writableEnded !== true) {
|
|
323
|
+
dropPart();
|
|
324
|
+
reject(new Error('上传中断(连接断开或流被销毁),目标原文件未受影响'));
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
this.renameOverwrite(sftp, partPath, target).then(resolve, (error) => {
|
|
328
|
+
dropPart();
|
|
329
|
+
reject(error);
|
|
330
|
+
});
|
|
331
|
+
});
|
|
257
332
|
});
|
|
258
333
|
// 必挂一个 no-op 分支:客户端中断 / 取消会让流以 destroy 收尾(不是正常
|
|
259
334
|
// close),done 随之 reject——调用方可能已走别的路径返回,此时这个
|
|
260
335
|
// rejection 无人处理会变成 unhandled rejection 并拖垮宿主进程。
|
|
261
336
|
// 挂 handler 不改变语义:await done 仍会拿到同一个 rejection。
|
|
262
337
|
done.catch(() => { });
|
|
263
|
-
return { stream, done };
|
|
338
|
+
return { stream, done, writePath: partPath };
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* 同目录崩溃残留分片回收:`<basename>.dsh-part-*` 且 mtime 超过阈值才删
|
|
342
|
+
* (并发上传的新分片 mtime 很新,不会被误删);一切失败静默。
|
|
343
|
+
*/
|
|
344
|
+
async reapStaleParts(sftp, target) {
|
|
345
|
+
try {
|
|
346
|
+
const dir = dirname(target);
|
|
347
|
+
const prefix = `${basename(target)}.dsh-part-`;
|
|
348
|
+
const list = await new Promise((resolve) => {
|
|
349
|
+
sftp.readdir(dir, (error, found) => (error !== undefined ? resolve([]) : resolve(found)));
|
|
350
|
+
});
|
|
351
|
+
const now = Date.now();
|
|
352
|
+
for (const entry of list) {
|
|
353
|
+
if (!entry.filename.startsWith(prefix))
|
|
354
|
+
continue;
|
|
355
|
+
const age = now - Number(entry.attrs.mtime ?? 0) * 1000;
|
|
356
|
+
if (age < STALE_PART_MS)
|
|
357
|
+
continue;
|
|
358
|
+
sftp.unlink(joinRemotePath(dir, entry.filename), () => { });
|
|
359
|
+
this.logger.info(`[dsh-tty] sftp 清理崩溃残留分片(${joinRemotePath(dir, entry.filename)},${String(Math.round(age / 3600_000))}h 前)`);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
catch {
|
|
363
|
+
/* 清理是尽力而为 */
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
/** WriteStream 的 done Promise(close 即 resolve,error reject);onClose 钩子供覆盖写路径塞落盘逻辑。 */
|
|
367
|
+
streamDone(stream, onClose) {
|
|
368
|
+
return new Promise((resolve, reject) => {
|
|
369
|
+
stream.on('error', (error) => {
|
|
370
|
+
reject(new Error(`上传写入失败: ${error.message}`));
|
|
371
|
+
});
|
|
372
|
+
stream.on('close', () => {
|
|
373
|
+
onClose();
|
|
374
|
+
resolve();
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* 覆盖落盘:优先 posix-rename@openssh.com(原子覆盖,OpenSSH 系全支持);
|
|
380
|
+
* server 不支持该扩展时退 unlink+rename——窗口极小(新内容已在分片里完整
|
|
381
|
+
* 落盘),不会出现「截断后写一半」的旧问题。
|
|
382
|
+
*/
|
|
383
|
+
renameOverwrite(sftp, from, to) {
|
|
384
|
+
return new Promise((resolve, reject) => {
|
|
385
|
+
const posix = sftp.ext_openssh_rename;
|
|
386
|
+
if (typeof posix !== 'function') {
|
|
387
|
+
fallback();
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
try {
|
|
391
|
+
// 不支持 posix-rename 的 server:ssh2 会**同步 throw**(而非回调错误)
|
|
392
|
+
posix.call(sftp, from, to, (error) => {
|
|
393
|
+
if (error === undefined || error === null) {
|
|
394
|
+
resolve();
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
fallback();
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
catch {
|
|
401
|
+
fallback();
|
|
402
|
+
}
|
|
403
|
+
function fallback() {
|
|
404
|
+
sftp.unlink(to, () => {
|
|
405
|
+
sftp.rename(from, to, (renameError) => {
|
|
406
|
+
if (renameError != null)
|
|
407
|
+
reject(new Error(`落盘失败(rename ${from} → ${to}): ${renameError.message}`));
|
|
408
|
+
else
|
|
409
|
+
resolve();
|
|
410
|
+
});
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
});
|
|
264
414
|
}
|
|
265
415
|
/* -------------------------------------------------------------- */
|
|
266
416
|
/* 双栏直传(0.9.0,0.12.0 任务化 + 可取消):本机路径 ↔ 远程路径 */
|
|
267
417
|
/* -------------------------------------------------------------- */
|
|
268
418
|
/**
|
|
269
419
|
* 本机文件 / 目录 → 远程(双栏「→ 传输」)。目录递归建目录后逐个上传;
|
|
270
|
-
* 同名文件直接覆盖(openUpload
|
|
271
|
-
* signal
|
|
420
|
+
* 同名文件直接覆盖(openUpload 走临时分片 + rename,见其注释)。不经过
|
|
421
|
+
* 浏览器,字节不出宿主进程。signal 中止时销毁读写流并清理半截的远程
|
|
422
|
+
* 分片(删除失败只记日志)。
|
|
423
|
+
*
|
|
424
|
+
* 符号链接:根路径按用户显式选择跟随(fsStat);子项一律跳过(含指到
|
|
425
|
+
* 文件的链接)——`current -> .` 这类环会让递归永不收敛,直到 ENAMETOOLONG
|
|
426
|
+
* 或磁盘灌满;depth 兜底只为防未来的回归,不是主防线。
|
|
272
427
|
*/
|
|
273
|
-
async uploadFromLocal(spec, localPath, remotePath, options) {
|
|
428
|
+
async uploadFromLocal(spec, localPath, remotePath, options, depth = 0) {
|
|
274
429
|
const root = localPath.trim();
|
|
430
|
+
if (root === '')
|
|
431
|
+
throw new Error('本机路径为空(目录尚未定位)——拒绝按宿主进程 cwd 解析');
|
|
432
|
+
if (remotePath.trim() === '')
|
|
433
|
+
throw new Error('远程路径为空(目录尚未定位)——拒绝按登录目录解析');
|
|
275
434
|
const info = await fsStat(root).catch(() => {
|
|
276
435
|
throw new Error('本机路径不存在: ' + root);
|
|
277
436
|
});
|
|
278
437
|
throwIfCanceled(options);
|
|
279
438
|
if (info.isDirectory()) {
|
|
439
|
+
if (depth >= 100)
|
|
440
|
+
throw new Error('目录嵌套过深(≥100 层),已停止传输: ' + root);
|
|
280
441
|
await this.mkdir(spec, remotePath, true);
|
|
281
442
|
const children = await fsReaddir(root, { withFileTypes: true });
|
|
282
443
|
for (const child of children) {
|
|
444
|
+
if (child.isSymbolicLink())
|
|
445
|
+
continue;
|
|
283
446
|
throwIfCanceled(options);
|
|
284
|
-
await this.uploadFromLocal(spec, pathJoin(root, child.name), joinRemotePath(remotePath, child.name), options);
|
|
447
|
+
await this.uploadFromLocal(spec, pathJoin(root, child.name), joinRemotePath(remotePath, child.name), options, depth + 1);
|
|
285
448
|
}
|
|
286
449
|
return;
|
|
287
450
|
}
|
|
@@ -289,15 +452,15 @@ export class SftpManager {
|
|
|
289
452
|
throw new Error('不支持传输的文件类型: ' + root);
|
|
290
453
|
const label = basename(root);
|
|
291
454
|
options?.onFile?.(label);
|
|
292
|
-
const { stream, done } = await this.openUpload(spec, remotePath, false);
|
|
455
|
+
const { stream, done, writePath } = await this.openUpload(spec, remotePath, false);
|
|
293
456
|
try {
|
|
294
457
|
await this.pipeCounted(createReadStream(root), stream, options);
|
|
295
458
|
}
|
|
296
459
|
catch (error) {
|
|
297
|
-
// 取消:pipeline
|
|
460
|
+
// 取消:pipeline 已收尾(写流随之销毁),此时删分片才不会有写入竞态。
|
|
298
461
|
// 不 await done——被 destroy 打断的写流不会走正常 close,等它只会挂住。
|
|
299
462
|
if (options?.signal?.aborted === true) {
|
|
300
|
-
await this.deleteRemoteQuiet(spec,
|
|
463
|
+
await this.deleteRemoteQuiet(spec, writePath);
|
|
301
464
|
throw new TransferCanceledError();
|
|
302
465
|
}
|
|
303
466
|
throw new Error(`上传失败(${label}): ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -306,24 +469,36 @@ export class SftpManager {
|
|
|
306
469
|
}
|
|
307
470
|
/**
|
|
308
471
|
* 远程文件 / 目录 → 本机(双栏「← 传输」)。目录递归建本地目录后逐个下载;
|
|
309
|
-
* 同名文件直接覆盖('w'
|
|
472
|
+
* 同名文件直接覆盖('w' 写流)。符号链接不作为目录下钻(readdir attrs 的
|
|
473
|
+
* isDirectory 跟随 isSymbolicLink 才算目录)——防 `current -> .` 环;根路径
|
|
474
|
+
* 是链接时按文件下载(读取跟随目标,指向目录则传输报错)。
|
|
310
475
|
* signal 中止时销毁读写流并删除半截的本机文件(删除失败只记日志)。
|
|
311
476
|
*/
|
|
312
|
-
async downloadToLocal(spec, remotePath, localPath, options) {
|
|
477
|
+
async downloadToLocal(spec, remotePath, localPath, options, depth = 0) {
|
|
313
478
|
const target = remotePath.trim();
|
|
479
|
+
if (target === '')
|
|
480
|
+
throw new Error('远程路径为空(目录尚未定位)——拒绝按登录目录解析');
|
|
481
|
+
if (localPath.trim() === '')
|
|
482
|
+
throw new Error('本机路径为空(目录尚未定位)——拒绝按宿主进程 cwd 解析');
|
|
314
483
|
const sftp = await this.acquire(spec);
|
|
315
484
|
const stats = await new Promise((resolve, reject) => {
|
|
316
|
-
sftp.
|
|
485
|
+
sftp.lstat(target, (error, found) => (error != null ? reject(new Error(`远程路径不存在: ${target}(${error.message})`)) : resolve(found)));
|
|
317
486
|
});
|
|
318
487
|
throwIfCanceled(options);
|
|
319
|
-
if (stats.isDirectory()) {
|
|
488
|
+
if (stats.isDirectory() && !stats.isSymbolicLink()) {
|
|
489
|
+
if (depth >= 100)
|
|
490
|
+
throw new Error('远程目录嵌套过深(≥100 层),已停止传输: ' + target);
|
|
320
491
|
await fsMkdir(localPath, { recursive: true });
|
|
321
492
|
const list = await this.list(spec, target);
|
|
322
493
|
for (const entry of list.entries) {
|
|
323
494
|
if (DOT_ENTRIES.has(entry.name))
|
|
324
495
|
continue;
|
|
496
|
+
// 子项里的符号链接一律跳过(含指到文件的):本侧无法原样重建链接,
|
|
497
|
+
// 跟随又有目录环风险——与上传方向(rsync 默认)语义对齐
|
|
498
|
+
if (entry.isSymlink)
|
|
499
|
+
continue;
|
|
325
500
|
throwIfCanceled(options);
|
|
326
|
-
await this.downloadToLocal(spec, joinRemotePath(target, entry.name), pathJoin(localPath, entry.name), options);
|
|
501
|
+
await this.downloadToLocal(spec, joinRemotePath(target, entry.name), pathJoin(localPath, entry.name), options, depth + 1);
|
|
327
502
|
}
|
|
328
503
|
return;
|
|
329
504
|
}
|
|
@@ -349,6 +524,9 @@ export class SftpManager {
|
|
|
349
524
|
* 带字节计数与取消感知的 pipe:source→sink 之间插一个 PassThrough 只做
|
|
350
525
|
* 「数了就转发」;取消时 destroy 它——pipeline 随即结束并销毁两端流,
|
|
351
526
|
* 不留悬挂的 SFTP 句柄,也不会误报成「传输失败」。
|
|
527
|
+
* abort 监听器在管道收尾时摘除:signal 是整个任务共用的(每个文件都挂
|
|
528
|
+
* 一个),不摘的话 N 文件 = N 个常驻监听器,取消时 N 个已结束的 meter
|
|
529
|
+
* 齐刷刷被 destroy(Node 会报 MaxListenersExceededWarning)。
|
|
352
530
|
*/
|
|
353
531
|
async pipeCounted(source, sink, options) {
|
|
354
532
|
if (options === undefined || (options.signal === undefined && options.onBytes === undefined)) {
|
|
@@ -360,15 +538,26 @@ export class SftpManager {
|
|
|
360
538
|
const onBytes = options.onBytes;
|
|
361
539
|
meter.on('data', (chunk) => onBytes(chunk.length));
|
|
362
540
|
}
|
|
541
|
+
let detachAbort = null;
|
|
363
542
|
if (options.signal !== undefined) {
|
|
364
543
|
const signal = options.signal;
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
else
|
|
544
|
+
if (signal.aborted) {
|
|
545
|
+
meter.destroy();
|
|
546
|
+
}
|
|
547
|
+
else {
|
|
548
|
+
const abort = () => {
|
|
549
|
+
meter.destroy();
|
|
550
|
+
};
|
|
369
551
|
signal.addEventListener('abort', abort, { once: true });
|
|
552
|
+
detachAbort = () => signal.removeEventListener('abort', abort);
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
try {
|
|
556
|
+
await pipeline(source, meter, sink);
|
|
557
|
+
}
|
|
558
|
+
finally {
|
|
559
|
+
detachAbort?.();
|
|
370
560
|
}
|
|
371
|
-
await pipeline(source, meter, sink);
|
|
372
561
|
}
|
|
373
562
|
/** 删远端文件(取消后的半截清理):失败只记日志,不影响取消本身。 */
|
|
374
563
|
async deleteRemoteQuiet(spec, path) {
|
|
@@ -386,9 +575,12 @@ export class SftpManager {
|
|
|
386
575
|
* 预扫描总字节数(直传进度分母):目录递归累加文件大小,只数「源头一侧」
|
|
387
576
|
* ——up 数本机、down 数远程(对侧尚未创建,数不到也不该数)。目的是让
|
|
388
577
|
* 进度条有真实百分比:纯统计(不搬运),单项失败按 0 计、不阻断传输。
|
|
578
|
+
* 与传输本体同一套符号链接规则(子项跳过)+ 取消检查——统计也会走环。
|
|
389
579
|
*/
|
|
390
|
-
async estimateBytes(spec, direction, localPath, remotePath) {
|
|
580
|
+
async estimateBytes(spec, direction, localPath, remotePath, options, depth = 0) {
|
|
391
581
|
try {
|
|
582
|
+
if (depth >= 100)
|
|
583
|
+
return 0;
|
|
392
584
|
if (direction === 'up') {
|
|
393
585
|
const info = await fsStat(localPath);
|
|
394
586
|
if (!info.isDirectory())
|
|
@@ -396,7 +588,10 @@ export class SftpManager {
|
|
|
396
588
|
let total = 0;
|
|
397
589
|
const children = await fsReaddir(localPath, { withFileTypes: true });
|
|
398
590
|
for (const child of children) {
|
|
399
|
-
|
|
591
|
+
if (child.isSymbolicLink())
|
|
592
|
+
continue;
|
|
593
|
+
throwIfCanceled(options);
|
|
594
|
+
total += await this.estimateBytes(spec, direction, pathJoin(localPath, child.name), joinRemotePath(remotePath, child.name), options, depth + 1);
|
|
400
595
|
}
|
|
401
596
|
return total;
|
|
402
597
|
}
|
|
@@ -411,13 +606,16 @@ export class SftpManager {
|
|
|
411
606
|
let total = 0;
|
|
412
607
|
const list = await this.list(spec, remotePath).catch(() => ({ entries: [] }));
|
|
413
608
|
for (const entry of list.entries) {
|
|
414
|
-
if (DOT_ENTRIES.has(entry.name))
|
|
609
|
+
if (DOT_ENTRIES.has(entry.name) || entry.isSymlink)
|
|
415
610
|
continue;
|
|
416
|
-
|
|
611
|
+
throwIfCanceled(options);
|
|
612
|
+
total += await this.estimateBytes(spec, direction, pathJoin(localPath, entry.name), joinRemotePath(remotePath, entry.name), options, depth + 1);
|
|
417
613
|
}
|
|
418
614
|
return total;
|
|
419
615
|
}
|
|
420
|
-
catch {
|
|
616
|
+
catch (error) {
|
|
617
|
+
if (error instanceof TransferCanceledError)
|
|
618
|
+
throw error;
|
|
421
619
|
/* 统计是尽力而为:失败退化为不定进度,不影响传输本身 */
|
|
422
620
|
return 0;
|
|
423
621
|
}
|
|
@@ -447,7 +645,7 @@ export class SftpManager {
|
|
|
447
645
|
};
|
|
448
646
|
void (async () => {
|
|
449
647
|
try {
|
|
450
|
-
job.total = await this.estimateBytes(spec, direction, localPath, remotePath);
|
|
648
|
+
job.total = await this.estimateBytes(spec, direction, localPath, remotePath, options);
|
|
451
649
|
if (direction === 'up')
|
|
452
650
|
await this.uploadFromLocal(spec, localPath, remotePath, options);
|
|
453
651
|
else
|
|
@@ -615,7 +813,9 @@ export class SftpManager {
|
|
|
615
813
|
}
|
|
616
814
|
if (!recursive) {
|
|
617
815
|
await new Promise((resolve, reject) => {
|
|
618
|
-
|
|
816
|
+
// 不预设原因:非空与权限拒绝在 SFTP 层都是笼统的 Failure,把两种可能
|
|
817
|
+
// 一并列出让用户自行分辨(此前一律归因为「非空」误导权限问题)
|
|
818
|
+
sftp.rmdir(path, (error) => (error != null ? reject(new Error(`删除目录失败: ${error.message}(目录非空时需 recursive:true;若非此原因,多为账号对该目录无写权限)`)) : resolve()));
|
|
619
819
|
});
|
|
620
820
|
return;
|
|
621
821
|
}
|
package/lib/sftp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sftp.js","sourceRoot":"","sources":["../src/sftp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sftp.js","sourceRoot":"","sources":["../src/sftp.ts"],"names":[],"mappings":"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"}
|