@coralai/sps-cli 0.65.87 → 0.65.91
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/dist/console/index.d.ts.map +1 -1
- package/dist/console/index.js +2 -0
- package/dist/console/index.js.map +1 -1
- package/dist/console/lib/artPaths.d.ts +5 -5
- package/dist/console/lib/artPaths.d.ts.map +1 -1
- package/dist/console/lib/artPaths.js +8 -26
- package/dist/console/lib/artPaths.js.map +1 -1
- package/dist/console/routes/storage.d.ts +21 -0
- package/dist/console/routes/storage.d.ts.map +1 -0
- package/dist/console/routes/storage.js +115 -0
- package/dist/console/routes/storage.js.map +1 -0
- package/dist/core/pathFence.d.ts +20 -0
- package/dist/core/pathFence.d.ts.map +1 -0
- package/dist/core/pathFence.js +60 -0
- package/dist/core/pathFence.js.map +1 -0
- package/dist/daemon/sessionDaemon.d.ts +1 -0
- package/dist/daemon/sessionDaemon.d.ts.map +1 -1
- package/dist/daemon/sessionDaemon.js +6 -0
- package/dist/daemon/sessionDaemon.js.map +1 -1
- package/dist/daemon/storageSyncLoop.d.ts +9 -0
- package/dist/daemon/storageSyncLoop.d.ts.map +1 -0
- package/dist/daemon/storageSyncLoop.js +70 -0
- package/dist/daemon/storageSyncLoop.js.map +1 -0
- package/dist/providers/storage/FakeStorage.d.ts +14 -0
- package/dist/providers/storage/FakeStorage.d.ts.map +1 -0
- package/dist/providers/storage/FakeStorage.js +33 -0
- package/dist/providers/storage/FakeStorage.js.map +1 -0
- package/dist/providers/storage/MinioBackend.d.ts +31 -0
- package/dist/providers/storage/MinioBackend.d.ts.map +1 -0
- package/dist/providers/storage/MinioBackend.js +60 -0
- package/dist/providers/storage/MinioBackend.js.map +1 -0
- package/dist/providers/storage/StorageBackend.d.ts +43 -0
- package/dist/providers/storage/StorageBackend.d.ts.map +1 -0
- package/dist/providers/storage/StorageBackend.js +29 -0
- package/dist/providers/storage/StorageBackend.js.map +1 -0
- package/dist/providers/storage/keys.d.ts +33 -0
- package/dist/providers/storage/keys.d.ts.map +1 -0
- package/dist/providers/storage/keys.js +52 -0
- package/dist/providers/storage/keys.js.map +1 -0
- package/dist/providers/storage/scanWorkspace.d.ts +56 -0
- package/dist/providers/storage/scanWorkspace.d.ts.map +1 -0
- package/dist/providers/storage/scanWorkspace.js +205 -0
- package/dist/providers/storage/scanWorkspace.js.map +1 -0
- package/dist/providers/storage/storageConfig.d.ts +46 -0
- package/dist/providers/storage/storageConfig.d.ts.map +1 -0
- package/dist/providers/storage/storageConfig.js +94 -0
- package/dist/providers/storage/storageConfig.js.map +1 -0
- package/dist/providers/storage/syncProject.d.ts +67 -0
- package/dist/providers/storage/syncProject.d.ts.map +1 -0
- package/dist/providers/storage/syncProject.js +136 -0
- package/dist/providers/storage/syncProject.js.map +1 -0
- package/dist/providers/storage/syncRunner.d.ts +59 -0
- package/dist/providers/storage/syncRunner.d.ts.map +1 -0
- package/dist/providers/storage/syncRunner.js +119 -0
- package/dist/providers/storage/syncRunner.js.map +1 -0
- package/dist/providers/storage/syncScope.d.ts +25 -0
- package/dist/providers/storage/syncScope.d.ts.map +1 -0
- package/dist/providers/storage/syncScope.js +68 -0
- package/dist/providers/storage/syncScope.js.map +1 -0
- package/dist/providers/storage/syncable.d.ts +47 -0
- package/dist/providers/storage/syncable.d.ts.map +1 -0
- package/dist/providers/storage/syncable.js +84 -0
- package/dist/providers/storage/syncable.js.map +1 -0
- package/package.json +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionDaemon.js","sourceRoot":"","sources":["../../src/daemon/sessionDaemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sessionDaemon.js","sourceRoot":"","sources":["../../src/daemon/sessionDaemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface StorageSyncLoopHandle {
|
|
2
|
+
stop(): void;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* 起循环。**返回 handle 而不是 never** —— daemon 关停时要能停掉它,
|
|
6
|
+
* 否则进程退不干净(而"退不干净"的表现是重启时端口/socket 还被占着)。
|
|
7
|
+
*/
|
|
8
|
+
export declare function startStorageSyncLoop(log: (line: string) => void): StorageSyncLoopHandle;
|
|
9
|
+
//# sourceMappingURL=storageSyncLoop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storageSyncLoop.d.ts","sourceRoot":"","sources":["../../src/daemon/storageSyncLoop.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,qBAAqB;IACpC,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,qBAAqB,CAqCvF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module daemon/storageSyncLoop
|
|
3
|
+
* @description 把工作区 → 桶的对账同步挂进 daemon 的常驻循环。
|
|
4
|
+
*
|
|
5
|
+
* @layer daemon
|
|
6
|
+
*
|
|
7
|
+
* 🔴 **为什么在 daemon 而不是 console**:console 是**共享事件循环**,同步要读整棵树、
|
|
8
|
+
* 算 md5、缩略图、发网络请求 —— 跑在请求路径里会阻塞 `/api/health` 探针与 SSE 心跳。
|
|
9
|
+
* > 判据:**同步在移交件里是对的 —— 它本来跑在 CLI 里;换了宿主之后才变错。**
|
|
10
|
+
*
|
|
11
|
+
* 🔴 **一轮没跑完不开下一轮。** 用 `setTimeout` 自排,不用 `setInterval`:
|
|
12
|
+
* `setInterval` 在一轮变慢时会叠罗汉 —— 两轮并发对同一个前缀列举 + 上传,
|
|
13
|
+
* 表现是"同步好像更忙了",实际是互相重复做功,而且**没有任何报错**。
|
|
14
|
+
*
|
|
15
|
+
* 🔴 **未配置 ⇒ 一行日志都不打。** 未配置是合法状态(sps 是通用工具,别人装它不需要对象存储);
|
|
16
|
+
* 每 N 分钟打一次"未配置"会把真正的告警淹掉。
|
|
17
|
+
*/
|
|
18
|
+
import { workspacesRoot } from '../core/workspacePaths.js';
|
|
19
|
+
import { activeStorageConfig } from '../providers/storage/storageConfig.js';
|
|
20
|
+
import { runSyncPass } from '../providers/storage/syncRunner.js';
|
|
21
|
+
/** 轮间隔。与 coral sidecar 同量级(它是分钟级);太密只会重复列举,收益为零。 */
|
|
22
|
+
const DEFAULT_INTERVAL_MS = 5 * 60_000;
|
|
23
|
+
/** 只同步近 N 天动过的项目。0 = 全部(首轮全量迁移时用)。 */
|
|
24
|
+
const DEFAULT_SINCE_DAYS = 30;
|
|
25
|
+
/** 单文件上限:显式给,不靠运气。 */
|
|
26
|
+
const DEFAULT_MAX_BYTES = 64 * 1024 * 1024;
|
|
27
|
+
/**
|
|
28
|
+
* 起循环。**返回 handle 而不是 never** —— daemon 关停时要能停掉它,
|
|
29
|
+
* 否则进程退不干净(而"退不干净"的表现是重启时端口/socket 还被占着)。
|
|
30
|
+
*/
|
|
31
|
+
export function startStorageSyncLoop(log) {
|
|
32
|
+
const intervalMs = Number(process.env.SPS_STORAGE_SYNC_INTERVAL_MS) || DEFAULT_INTERVAL_MS;
|
|
33
|
+
const sinceDays = process.env.SPS_STORAGE_SYNC_SINCE_DAYS !== undefined
|
|
34
|
+
? Number(process.env.SPS_STORAGE_SYNC_SINCE_DAYS)
|
|
35
|
+
: DEFAULT_SINCE_DAYS;
|
|
36
|
+
const maxBytes = Number(process.env.SPS_STORAGE_SYNC_MAX_BYTES) || DEFAULT_MAX_BYTES;
|
|
37
|
+
let timer = null;
|
|
38
|
+
let stopped = false;
|
|
39
|
+
let announced = false;
|
|
40
|
+
const tick = async () => {
|
|
41
|
+
if (stopped)
|
|
42
|
+
return;
|
|
43
|
+
try {
|
|
44
|
+
if (activeStorageConfig() !== null && !announced) {
|
|
45
|
+
announced = true;
|
|
46
|
+
log(`[sps-sync] 常驻:根=${workspacesRoot()} 间隔=${intervalMs}ms 范围=近 ${sinceDays || '∞'} 天`);
|
|
47
|
+
}
|
|
48
|
+
await runSyncPass({ root: workspacesRoot(), sinceDays, maxBytes, log });
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
// 同步器**不能因为一轮失败就死掉**;但原因要留下。
|
|
52
|
+
log(`[sps-sync] 本轮异常:${e instanceof Error ? e.message : String(e)}`);
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
if (!stopped)
|
|
56
|
+
timer = setTimeout(() => void tick(), intervalMs);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
// 起步不立刻跑:daemon 启动那一刻正忙着恢复会话,别抢 IO。
|
|
60
|
+
timer = setTimeout(() => void tick(), 10_000);
|
|
61
|
+
return {
|
|
62
|
+
stop() {
|
|
63
|
+
stopped = true;
|
|
64
|
+
if (timer)
|
|
65
|
+
clearTimeout(timer);
|
|
66
|
+
timer = null;
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=storageSyncLoop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storageSyncLoop.js","sourceRoot":"","sources":["../../src/daemon/storageSyncLoop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,oDAAoD;AACpD,MAAM,mBAAmB,GAAG,CAAC,GAAG,MAAM,CAAC;AACvC,sCAAsC;AACtC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,sBAAsB;AACtB,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAM3C;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAA2B;IAC9D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,mBAAmB,CAAC;IAC3F,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,SAAS;QACrE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;QACjD,CAAC,CAAC,kBAAkB,CAAC;IACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,iBAAiB,CAAC;IAErF,IAAI,KAAK,GAAyC,IAAI,CAAC;IACvD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACrC,IAAI,OAAO;YAAE,OAAO;QACpB,IAAI,CAAC;YACH,IAAI,mBAAmB,EAAE,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjD,SAAS,GAAG,IAAI,CAAC;gBACjB,GAAG,CAAC,mBAAmB,cAAc,EAAE,OAAO,UAAU,WAAW,SAAS,IAAI,GAAG,IAAI,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,6BAA6B;YAC7B,GAAG,CAAC,mBAAmB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO;gBAAE,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC;IAEF,oCAAoC;IACpC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IAE9C,OAAO;QACL,IAAI;YACF,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type StorageBackend, type StorageObject } from './StorageBackend.js';
|
|
2
|
+
export declare class FakeStorage implements StorageBackend {
|
|
3
|
+
readonly objects: Map<string, {
|
|
4
|
+
bytes: Buffer;
|
|
5
|
+
contentType?: string;
|
|
6
|
+
etag: string;
|
|
7
|
+
}>;
|
|
8
|
+
putCalls: string[];
|
|
9
|
+
/** 下一次 put 到这个 key 时抛错(模拟上传失败)。 */
|
|
10
|
+
failNext: string | null;
|
|
11
|
+
put(key: string, bytes: Buffer, contentType?: string): Promise<void>;
|
|
12
|
+
list(prefix: string): Promise<StorageObject[]>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=FakeStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeStorage.d.ts","sourceRoot":"","sources":["../../../src/providers/storage/FakeStorage.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAEvG,qBAAa,WAAY,YAAW,cAAc;IAChD,QAAQ,CAAC,OAAO;eAA4B,MAAM;sBAAgB,MAAM;cAAQ,MAAM;OAAM;IAC5F,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAKrD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module providers/storage/FakeStorage
|
|
3
|
+
* @description `StorageBackend` 的内存假实现。**它的存在本身就是"接口中性"的证据** ——
|
|
4
|
+
* 一个不认识 minio 的实现能满足整个接口,说明上层没有漏抽象。
|
|
5
|
+
*
|
|
6
|
+
* @layer providers
|
|
7
|
+
*
|
|
8
|
+
* ⚠️ 放在 `.test.ts` 之外是因为 lint 禁止从测试文件导出(`noExportsInTest`),
|
|
9
|
+
* 而它被两个用例文件共用。**共用的测试替身要有自己的落点**,复制两份才是问题。
|
|
10
|
+
*/
|
|
11
|
+
import { createHash } from 'node:crypto';
|
|
12
|
+
import { StorageUnavailableError } from './StorageBackend.js';
|
|
13
|
+
export class FakeStorage {
|
|
14
|
+
objects = new Map();
|
|
15
|
+
putCalls = [];
|
|
16
|
+
/** 下一次 put 到这个 key 时抛错(模拟上传失败)。 */
|
|
17
|
+
failNext = null;
|
|
18
|
+
async put(key, bytes, contentType) {
|
|
19
|
+
if (this.failNext === key) {
|
|
20
|
+
this.failNext = null;
|
|
21
|
+
throw new StorageUnavailableError(`假的上传失败:${key}`);
|
|
22
|
+
}
|
|
23
|
+
this.putCalls.push(key);
|
|
24
|
+
// etag 用 md5:与单段上传的真实语义一致,否则用例会掩盖"分块上传 etag 不是 md5"那个坑
|
|
25
|
+
this.objects.set(key, { bytes, contentType, etag: createHash('md5').update(bytes).digest('hex') });
|
|
26
|
+
}
|
|
27
|
+
async list(prefix) {
|
|
28
|
+
return [...this.objects.entries()]
|
|
29
|
+
.filter(([k]) => k.startsWith(prefix))
|
|
30
|
+
.map(([key, v]) => ({ key, etag: v.etag, size: v.bytes.length }));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=FakeStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeStorage.js","sourceRoot":"","sources":["../../../src/providers/storage/FakeStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAA2C,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEvG,MAAM,OAAO,WAAW;IACb,OAAO,GAAG,IAAI,GAAG,EAAiE,CAAC;IAC5F,QAAQ,GAAa,EAAE,CAAC;IACxB,mCAAmC;IACnC,QAAQ,GAAkB,IAAI,CAAC;IAE/B,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,WAAoB;QACxD,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,MAAM,IAAI,uBAAuB,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,uDAAuD;QACvD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAc;QACvB,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aAC/B,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module providers/storage/MinioBackend
|
|
3
|
+
* @description `StorageBackend` 的第一个实现:S3 兼容(MinIO)。
|
|
4
|
+
*
|
|
5
|
+
* @layer providers
|
|
6
|
+
*
|
|
7
|
+
* 🔴 **依赖走 `optionalDependencies` + 动态 import。**
|
|
8
|
+
* `@coralai/sps-cli` 是公共 npm 包,别人装它不需要对象存储。
|
|
9
|
+
* 没装 ⇒ 抛 `StorageUnavailableError` 并**指名说"未安装"**,
|
|
10
|
+
* **绝不静默降级**成"这轮没东西同步" —— 那会让"功能没装"伪装成"没有变化"。
|
|
11
|
+
*
|
|
12
|
+
* ⚠️ 这里是**唯一**允许出现 minio 类型的文件。上层只认 `StorageBackend`。
|
|
13
|
+
* 自检:换掉本文件,上层用例应当全绿(`storageBackend.test.ts` 就是拿假实现证明这一点的)。
|
|
14
|
+
*/
|
|
15
|
+
import type { StorageBackend, StorageObject } from './StorageBackend.js';
|
|
16
|
+
import type { StorageConfig } from './storageConfig.js';
|
|
17
|
+
/**
|
|
18
|
+
* `etag` 从 MinIO 回来时**带引号**(`"d41d8…"`),而本地算的 md5 不带。
|
|
19
|
+
* 不剥掉的话每一轮对账都判"变了" ⇒ **每轮重传全部文件**,而且完全不报错 ——
|
|
20
|
+
* 表现是"同步一直在工作",只是流量和耗时莫名其妙。
|
|
21
|
+
*/
|
|
22
|
+
export declare function normalizeEtag(raw: unknown): string;
|
|
23
|
+
export declare class MinioBackend implements StorageBackend {
|
|
24
|
+
private readonly cfg;
|
|
25
|
+
private client;
|
|
26
|
+
constructor(cfg: StorageConfig);
|
|
27
|
+
private ensure;
|
|
28
|
+
put(key: string, bytes: Buffer, contentType?: string): Promise<void>;
|
|
29
|
+
list(prefix: string): Promise<StorageObject[]>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=MinioBackend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinioBackend.d.ts","sourceRoot":"","sources":["../../../src/providers/storage/MinioBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAcxD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAElD;AAED,qBAAa,YAAa,YAAW,cAAc;IAGrC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,MAAM,CAA0B;gBAEX,GAAG,EAAE,aAAa;YAEjC,MAAM;IAwBd,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAgBrD"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { StorageUnavailableError } from './StorageBackend.js';
|
|
2
|
+
/**
|
|
3
|
+
* `etag` 从 MinIO 回来时**带引号**(`"d41d8…"`),而本地算的 md5 不带。
|
|
4
|
+
* 不剥掉的话每一轮对账都判"变了" ⇒ **每轮重传全部文件**,而且完全不报错 ——
|
|
5
|
+
* 表现是"同步一直在工作",只是流量和耗时莫名其妙。
|
|
6
|
+
*/
|
|
7
|
+
export function normalizeEtag(raw) {
|
|
8
|
+
return String(raw ?? '').replace(/^"|"$/g, '');
|
|
9
|
+
}
|
|
10
|
+
export class MinioBackend {
|
|
11
|
+
cfg;
|
|
12
|
+
client = null;
|
|
13
|
+
constructor(cfg) {
|
|
14
|
+
this.cfg = cfg;
|
|
15
|
+
}
|
|
16
|
+
async ensure() {
|
|
17
|
+
if (this.client)
|
|
18
|
+
return this.client;
|
|
19
|
+
let mod;
|
|
20
|
+
try {
|
|
21
|
+
mod = (await import('minio'));
|
|
22
|
+
}
|
|
23
|
+
catch (cause) {
|
|
24
|
+
throw new StorageUnavailableError("对象存储后端未安装:缺可选依赖 'minio'。安装它(npm i minio)或关掉 ~/.coral/storage.json 的 enabled。", cause);
|
|
25
|
+
}
|
|
26
|
+
const u = new URL(this.cfg.endpoint);
|
|
27
|
+
this.client = new mod.Client({
|
|
28
|
+
endPoint: u.hostname,
|
|
29
|
+
port: u.port ? Number(u.port) : u.protocol === 'https:' ? 443 : 80,
|
|
30
|
+
useSSL: u.protocol === 'https:',
|
|
31
|
+
accessKey: this.cfg.accessKey,
|
|
32
|
+
secretKey: this.cfg.secretKey,
|
|
33
|
+
region: this.cfg.region ?? 'us-east-1',
|
|
34
|
+
pathStyle: this.cfg.pathStyle ?? true,
|
|
35
|
+
});
|
|
36
|
+
return this.client;
|
|
37
|
+
}
|
|
38
|
+
async put(key, bytes, contentType) {
|
|
39
|
+
const c = await this.ensure();
|
|
40
|
+
// 显式给 size:不给的话客户端会走分块流式上传,而**分块上传的 etag 不是 md5**
|
|
41
|
+
// ⇒ 对账判据(etag == 本地 md5)当场失效,且失效方式是"永远判为不同"。
|
|
42
|
+
await c.putObject(this.cfg.bucket, key, bytes, bytes.length, contentType ? { 'Content-Type': contentType } : undefined);
|
|
43
|
+
}
|
|
44
|
+
async list(prefix) {
|
|
45
|
+
const c = await this.ensure();
|
|
46
|
+
const stream = c.listObjectsV2(this.cfg.bucket, prefix, true);
|
|
47
|
+
return await new Promise((resolve, reject) => {
|
|
48
|
+
const out = [];
|
|
49
|
+
stream.on('data', (o) => {
|
|
50
|
+
// 目录占位项没有 name/etag(MinIO 会回"前缀"条目);跳过它们,别当成对象。
|
|
51
|
+
if (!o.name)
|
|
52
|
+
return;
|
|
53
|
+
out.push({ key: o.name, etag: normalizeEtag(o.etag), size: o.size ?? 0 });
|
|
54
|
+
});
|
|
55
|
+
stream.on('end', () => resolve(out));
|
|
56
|
+
stream.on('error', (e) => reject(new StorageUnavailableError(`列举失败:${prefix}`, e)));
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=MinioBackend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinioBackend.js","sourceRoot":"","sources":["../../../src/providers/storage/MinioBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module providers/storage/StorageBackend
|
|
3
|
+
* @description 对象存储的**中性接口**。换一个后端(MinIO / S3 / WebDAV / 别的 HTTP 端点),
|
|
4
|
+
* 上层几乎不用改 —— 与 `AgentBackend` / `RepoBackend` / `MediaProvider` 同一条自检判据。
|
|
5
|
+
*
|
|
6
|
+
* @layer providers
|
|
7
|
+
*
|
|
8
|
+
* 🔴 **接口里不出现任何一家存储的类型或词汇。** 这是"独立性"的全部来源:
|
|
9
|
+
* 独立性来自**接口中性**,不来自代码住在哪个包里。
|
|
10
|
+
* (§2.1:插件 ≠ 解耦。解耦是接口的性质,插件是分发的性质。)
|
|
11
|
+
*
|
|
12
|
+
* 🔴 **只有 put 与 list 两个动作,而且没有 delete。**
|
|
13
|
+
* · 没有 delete 是**有意的**:同步这条路的不变量是「**不删**」——
|
|
14
|
+
* 本地文件没了不等于用户要删桶里那份(工作区可能被重建、节点可能换了)。
|
|
15
|
+
* 接口上不给这个动作,比在实现里"记得别调"可靠。
|
|
16
|
+
* (同族:授权中心也**不该有 DeleteObject**,理由是 artifacts 未版本化 ⇒ 误删不可恢复。)
|
|
17
|
+
* · 没有 `stat` 是因为对账用 `list` 一次拿全前缀更省往返,而且**对账基准必须是桶本身**;
|
|
18
|
+
* 逐个 stat 会诱使实现方去缓存"上次看到的",那正是要避免的形态。
|
|
19
|
+
*/
|
|
20
|
+
/** 桶里一个对象的对账信息。**etag 是内容判据**(单段上传时等于 md5),不看时间。 */
|
|
21
|
+
export interface StorageObject {
|
|
22
|
+
key: string;
|
|
23
|
+
etag: string;
|
|
24
|
+
size: number;
|
|
25
|
+
}
|
|
26
|
+
export interface StorageBackend {
|
|
27
|
+
/**
|
|
28
|
+
* 写一个对象(覆盖同 key)。
|
|
29
|
+
*
|
|
30
|
+
* 🔴 `contentType` 不是可选的装饰:桶是**直连**的,没有一层服务器可以在返回时补救 ——
|
|
31
|
+
* 缺省的 `application/octet-stream` 会让预览图在浏览器里变成一次下载。
|
|
32
|
+
* 所以推的时候就得写对;拿不准时**由调用方决定**,后端不猜。
|
|
33
|
+
*/
|
|
34
|
+
put(key: string, bytes: Buffer, contentType?: string): Promise<void>;
|
|
35
|
+
/** 列一个前缀下的全部对象(递归)。前缀为空即整桶 —— 调用方自己收窄。 */
|
|
36
|
+
list(prefix: string): Promise<StorageObject[]>;
|
|
37
|
+
}
|
|
38
|
+
/** 后端不可用时抛这个,**不要静默降级**成"这轮没东西同步"。 */
|
|
39
|
+
export declare class StorageUnavailableError extends Error {
|
|
40
|
+
readonly cause?: unknown | undefined;
|
|
41
|
+
constructor(message: string, cause?: unknown | undefined);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=StorageBackend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageBackend.d.ts","sourceRoot":"","sources":["../../../src/providers/storage/StorageBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE,0CAA0C;IAC1C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CAChD;AAED,sCAAsC;AACtC,qBAAa,uBAAwB,SAAQ,KAAK;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;gBAAzC,OAAO,EAAE,MAAM,EAAW,KAAK,CAAC,EAAE,OAAO,YAAA;CAItD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module providers/storage/StorageBackend
|
|
3
|
+
* @description 对象存储的**中性接口**。换一个后端(MinIO / S3 / WebDAV / 别的 HTTP 端点),
|
|
4
|
+
* 上层几乎不用改 —— 与 `AgentBackend` / `RepoBackend` / `MediaProvider` 同一条自检判据。
|
|
5
|
+
*
|
|
6
|
+
* @layer providers
|
|
7
|
+
*
|
|
8
|
+
* 🔴 **接口里不出现任何一家存储的类型或词汇。** 这是"独立性"的全部来源:
|
|
9
|
+
* 独立性来自**接口中性**,不来自代码住在哪个包里。
|
|
10
|
+
* (§2.1:插件 ≠ 解耦。解耦是接口的性质,插件是分发的性质。)
|
|
11
|
+
*
|
|
12
|
+
* 🔴 **只有 put 与 list 两个动作,而且没有 delete。**
|
|
13
|
+
* · 没有 delete 是**有意的**:同步这条路的不变量是「**不删**」——
|
|
14
|
+
* 本地文件没了不等于用户要删桶里那份(工作区可能被重建、节点可能换了)。
|
|
15
|
+
* 接口上不给这个动作,比在实现里"记得别调"可靠。
|
|
16
|
+
* (同族:授权中心也**不该有 DeleteObject**,理由是 artifacts 未版本化 ⇒ 误删不可恢复。)
|
|
17
|
+
* · 没有 `stat` 是因为对账用 `list` 一次拿全前缀更省往返,而且**对账基准必须是桶本身**;
|
|
18
|
+
* 逐个 stat 会诱使实现方去缓存"上次看到的",那正是要避免的形态。
|
|
19
|
+
*/
|
|
20
|
+
/** 后端不可用时抛这个,**不要静默降级**成"这轮没东西同步"。 */
|
|
21
|
+
export class StorageUnavailableError extends Error {
|
|
22
|
+
cause;
|
|
23
|
+
constructor(message, cause) {
|
|
24
|
+
super(message);
|
|
25
|
+
this.cause = cause;
|
|
26
|
+
this.name = 'StorageUnavailableError';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=StorageBackend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageBackend.js","sourceRoot":"","sources":["../../../src/providers/storage/StorageBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAuBH,sCAAsC;AACtC,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACV;IAAtC,YAAY,OAAe,EAAW,KAAe;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QADqB,UAAK,GAAL,KAAK,CAAU;QAEnD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module providers/storage/keys
|
|
3
|
+
* @description 桶 key 的拼法。**与 coral `src/storage/keys.ts` 逐字对齐** —— 这是移交的对账面。
|
|
4
|
+
*
|
|
5
|
+
* @layer providers
|
|
6
|
+
*
|
|
7
|
+
* 🔴 **为什么要一个模块而不是各处拼字符串**(照抄 coral 头注里的理由,它是对的):
|
|
8
|
+
* 桶里**没有"路径不存在"这种错误**。写方把 key 拼错一个字符,PUT 照样 200,
|
|
9
|
+
* 只是那个对象从此没人读得到;读方拼错,拿到 404 却无法区分"没同步上来"和"key 写法不一致"。
|
|
10
|
+
* 文件系统会用 ENOENT 立刻告诉你,桶不会。
|
|
11
|
+
*
|
|
12
|
+
* 🔴 **移交期间这是两份实现。** 两份实现的安全做法不是"小心点",是**拿真桶内容对账**:
|
|
13
|
+
* 切换前跑一轮并行比对,逐 key 逐 etag 一致才算数(实施计划任务 5 的验收物)。
|
|
14
|
+
* > 判据:一条安全/正确性规则**做对过一次,不代表它在第二条路上也在**。
|
|
15
|
+
*
|
|
16
|
+
* ⚠️ 这里只有**同步**这条路用得到的三个(assetKey / assetPrefix / thumbKey)。
|
|
17
|
+
* `published/` 与 `library/` 是别的路的写方,**不在本模块** —— 免得看起来像"sps 管着整个桶布局"。
|
|
18
|
+
*/
|
|
19
|
+
/** `./x` → `x`;去掉前导 `/`;`..` 一律抛(围栏在 `syncable`,这里是最后一道形状校验)。 */
|
|
20
|
+
export declare function normalizeRel(rel: string): string;
|
|
21
|
+
/** 项目在共享树下的相对路径(`t<租户>/<产品>/<项目>`),去掉尾部斜杠。 */
|
|
22
|
+
export declare function normalizeProject(projectPath: string): string;
|
|
23
|
+
export declare function assetKey(projectPath: string, rel: string): string;
|
|
24
|
+
/** 某项目全部资源的前缀(对账列举用)。 */
|
|
25
|
+
export declare function assetPrefix(projectPath: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* 缩略图:与原图同一棵树下的 `.thumbs/`,**后缀直接追加而不是替换**。
|
|
28
|
+
*
|
|
29
|
+
* 追加(`hero.png.webp`)而不是替换(`hero.webp`)是有意的:替换会让
|
|
30
|
+
* `hero.png` 与 `hero.jpg` 撞成同一个缩略图 key,而撞了不报错 —— 后写的赢,预览图随机。
|
|
31
|
+
*/
|
|
32
|
+
export declare function thumbKey(projectPath: string, rel: string): string;
|
|
33
|
+
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/providers/storage/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,8CAA8C;AAC9C,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,yBAAyB;AACzB,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMjE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module providers/storage/keys
|
|
3
|
+
* @description 桶 key 的拼法。**与 coral `src/storage/keys.ts` 逐字对齐** —— 这是移交的对账面。
|
|
4
|
+
*
|
|
5
|
+
* @layer providers
|
|
6
|
+
*
|
|
7
|
+
* 🔴 **为什么要一个模块而不是各处拼字符串**(照抄 coral 头注里的理由,它是对的):
|
|
8
|
+
* 桶里**没有"路径不存在"这种错误**。写方把 key 拼错一个字符,PUT 照样 200,
|
|
9
|
+
* 只是那个对象从此没人读得到;读方拼错,拿到 404 却无法区分"没同步上来"和"key 写法不一致"。
|
|
10
|
+
* 文件系统会用 ENOENT 立刻告诉你,桶不会。
|
|
11
|
+
*
|
|
12
|
+
* 🔴 **移交期间这是两份实现。** 两份实现的安全做法不是"小心点",是**拿真桶内容对账**:
|
|
13
|
+
* 切换前跑一轮并行比对,逐 key 逐 etag 一致才算数(实施计划任务 5 的验收物)。
|
|
14
|
+
* > 判据:一条安全/正确性规则**做对过一次,不代表它在第二条路上也在**。
|
|
15
|
+
*
|
|
16
|
+
* ⚠️ 这里只有**同步**这条路用得到的三个(assetKey / assetPrefix / thumbKey)。
|
|
17
|
+
* `published/` 与 `library/` 是别的路的写方,**不在本模块** —— 免得看起来像"sps 管着整个桶布局"。
|
|
18
|
+
*/
|
|
19
|
+
/** `./x` → `x`;去掉前导 `/`;`..` 一律抛(围栏在 `syncable`,这里是最后一道形状校验)。 */
|
|
20
|
+
export function normalizeRel(rel) {
|
|
21
|
+
const clean = rel.replace(/^\.\//, '').replace(/^\/+/, '');
|
|
22
|
+
if (!clean)
|
|
23
|
+
throw new Error('相对路径为空');
|
|
24
|
+
if (clean.split('/').includes('..'))
|
|
25
|
+
throw new Error(`相对路径含 ..:${rel}`);
|
|
26
|
+
return clean;
|
|
27
|
+
}
|
|
28
|
+
/** 项目在共享树下的相对路径(`t<租户>/<产品>/<项目>`),去掉尾部斜杠。 */
|
|
29
|
+
export function normalizeProject(projectPath) {
|
|
30
|
+
return normalizeRel(projectPath).replace(/\/+$/, '');
|
|
31
|
+
}
|
|
32
|
+
export function assetKey(projectPath, rel) {
|
|
33
|
+
return `assets/${normalizeProject(projectPath)}/${normalizeRel(rel)}`;
|
|
34
|
+
}
|
|
35
|
+
/** 某项目全部资源的前缀(对账列举用)。 */
|
|
36
|
+
export function assetPrefix(projectPath) {
|
|
37
|
+
return `assets/${normalizeProject(projectPath)}/`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 缩略图:与原图同一棵树下的 `.thumbs/`,**后缀直接追加而不是替换**。
|
|
41
|
+
*
|
|
42
|
+
* 追加(`hero.png.webp`)而不是替换(`hero.webp`)是有意的:替换会让
|
|
43
|
+
* `hero.png` 与 `hero.jpg` 撞成同一个缩略图 key,而撞了不报错 —— 后写的赢,预览图随机。
|
|
44
|
+
*/
|
|
45
|
+
export function thumbKey(projectPath, rel) {
|
|
46
|
+
const clean = normalizeRel(rel);
|
|
47
|
+
const i = clean.lastIndexOf('/');
|
|
48
|
+
const dir = i < 0 ? '' : `${clean.slice(0, i)}/`;
|
|
49
|
+
const base = i < 0 ? clean : clean.slice(i + 1);
|
|
50
|
+
return `assets/${normalizeProject(projectPath)}/.thumbs/${dir}${base}.webp`;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/providers/storage/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iEAAiE;AACjE,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IACxE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO,YAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,WAAmB,EAAE,GAAW;IACvD,OAAO,UAAU,gBAAgB,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;AACxE,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,OAAO,UAAU,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,WAAmB,EAAE,GAAW;IACvD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;IACjD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,OAAO,UAAU,gBAAgB,CAAC,WAAW,CAAC,YAAY,GAAG,GAAG,IAAI,OAAO,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export interface ProjectDir {
|
|
2
|
+
/** 相对共享根:`t<租户>/<产品>/<项目>`。**这就是 key 里的 projectPath。** */
|
|
3
|
+
rel: string;
|
|
4
|
+
abs: string;
|
|
5
|
+
/** 布局第二段。声明按它取。 */
|
|
6
|
+
product: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ScannedFile {
|
|
9
|
+
/** 相对项目根。 */
|
|
10
|
+
rel: string;
|
|
11
|
+
abs: string;
|
|
12
|
+
size: number;
|
|
13
|
+
/** 内容判据。与桶的 etag 比 —— **不看 mtime**。 */
|
|
14
|
+
md5: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ScanResult {
|
|
17
|
+
files: ScannedFile[];
|
|
18
|
+
/**
|
|
19
|
+
* 声明里有、但盘上不存在的路径。
|
|
20
|
+
* 🔴 **与 `unreadable` 分开**:第一轮上线时 61 个 coralplatform 项目被报成"权限读不到",
|
|
21
|
+
* 实际是**目录不存在**(`ENOENT`)—— 而 `unreadable` 的语义是"基线 0,非 0 即告警",
|
|
22
|
+
* 于是它每一轮都会假报一次。**别让一个字段同时表示两件事**(今天第三次踩)。
|
|
23
|
+
*/
|
|
24
|
+
missing: string[];
|
|
25
|
+
/**
|
|
26
|
+
* 枚举时跳过的点开头条目(`.sprites.pre-orient.png` 这类中间产物)。
|
|
27
|
+
* 🔴 它们**不该走安全下限的"整趟拒绝"**:那条是给"声明里点名了不该给的东西"用的。
|
|
28
|
+
* 中间产物触发整趟拒绝 ⇒ 一个项目会**永久停止同步**,而且理由看起来像安全事件。
|
|
29
|
+
*/
|
|
30
|
+
skippedDot: string[];
|
|
31
|
+
/**
|
|
32
|
+
* 因权限读不到而跳过的相对路径。
|
|
33
|
+
* 🔴 **基线是 0 ⇒ 非 0 即变化**,是告警不是趋势:它既可能是"防线在生效"(0600 凭据读不到),
|
|
34
|
+
* 也可能是"误伤了用户数据"。两种含义都不该无声发生。
|
|
35
|
+
*/
|
|
36
|
+
unreadable: string[];
|
|
37
|
+
}
|
|
38
|
+
/** 发现共享根下的全部项目(三段布局)。不做任何内容判断。 */
|
|
39
|
+
export declare function discoverProjects(root: string): Promise<ProjectDir[]>;
|
|
40
|
+
/**
|
|
41
|
+
* 声明范围内最近一次改动的时间。
|
|
42
|
+
*
|
|
43
|
+
* @returns 毫秒时间戳;**`null` = 范围内一个路径都不存在**(与"存在但很旧"是两件事)
|
|
44
|
+
*/
|
|
45
|
+
export declare function scopeLastModified(projectAbs: string, include: string[]): Promise<number | null>;
|
|
46
|
+
/**
|
|
47
|
+
* 按声明枚举文件并算 md5。
|
|
48
|
+
*
|
|
49
|
+
* ⚠️ `maxBytes`:整份读进内存算 md5(与 coral 同做法 —— 上传时本来也要这份字节)。
|
|
50
|
+
* 上限**显式**给,不靠运气:树里有 172MB 的项目,一个失控的大文件不该把进程带走。
|
|
51
|
+
* 超限的算**失败**(计入 errors),不是静默跳过 —— 静默跳过会让"这个资源永远不在桶里"没人知道。
|
|
52
|
+
*/
|
|
53
|
+
export declare function scanByScope(projectAbs: string, include: string[], maxBytes: number): Promise<ScanResult & {
|
|
54
|
+
oversized: string[];
|
|
55
|
+
}>;
|
|
56
|
+
//# sourceMappingURL=scanWorkspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanWorkspace.d.ts","sourceRoot":"","sources":["../../../src/providers/storage/scanWorkspace.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;;OAIG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB;;;;OAIG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,kCAAkC;AAClC,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA0B1E;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBrG;AAyBD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAkF/C"}
|