sa2kit 2.0.1 → 2.0.2
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.md +1 -1
- package/dist/CollisionBalls-BpHufX3H.d.mts +41 -0
- package/dist/CollisionBalls-BpHufX3H.d.ts +41 -0
- package/dist/ConfigService-BxK06xP6.d.mts +262 -0
- package/dist/ConfigService-BxK06xP6.d.ts +262 -0
- package/dist/UniversalFileService-BpvbZitV.d.mts +139 -0
- package/dist/UniversalFileService-GsP6D3Rc.d.ts +139 -0
- package/dist/audioDetection/index.d.mts +449 -0
- package/dist/audioDetection/index.d.ts +449 -0
- package/dist/audioDetection/index.js +1244 -0
- package/dist/audioDetection/index.js.map +1 -0
- package/dist/audioDetection/index.mjs +1227 -0
- package/dist/audioDetection/index.mjs.map +1 -0
- package/dist/auth/legacy/core/index.d.mts +42 -0
- package/dist/auth/legacy/core/index.d.ts +42 -0
- package/dist/auth/legacy/core/index.js +242 -0
- package/dist/auth/legacy/core/index.js.map +1 -0
- package/dist/auth/legacy/core/index.mjs +226 -0
- package/dist/auth/legacy/core/index.mjs.map +1 -0
- package/dist/auth/legacy/db/index.d.mts +5 -0
- package/dist/auth/legacy/db/index.d.ts +5 -0
- package/dist/auth/legacy/db/index.js +261 -0
- package/dist/auth/legacy/db/index.js.map +1 -0
- package/dist/auth/legacy/db/index.mjs +250 -0
- package/dist/auth/legacy/db/index.mjs.map +1 -0
- package/dist/auth/legacy/index.d.mts +5 -0
- package/dist/auth/legacy/index.d.ts +5 -0
- package/dist/auth/legacy/index.js +1107 -0
- package/dist/auth/legacy/index.js.map +1 -0
- package/dist/auth/legacy/index.mjs +1086 -0
- package/dist/auth/legacy/index.mjs.map +1 -0
- package/dist/auth/legacy/logic/index.d.mts +9 -0
- package/dist/auth/legacy/logic/index.d.ts +9 -0
- package/dist/auth/legacy/logic/index.js +194 -0
- package/dist/auth/legacy/logic/index.js.map +1 -0
- package/dist/auth/legacy/logic/index.mjs +187 -0
- package/dist/auth/legacy/logic/index.mjs.map +1 -0
- package/dist/auth/legacy/miniapp/index.d.mts +5 -0
- package/dist/auth/legacy/miniapp/index.d.ts +5 -0
- package/dist/auth/legacy/miniapp/index.js +506 -0
- package/dist/auth/legacy/miniapp/index.js.map +1 -0
- package/dist/auth/legacy/miniapp/index.mjs +487 -0
- package/dist/auth/legacy/miniapp/index.mjs.map +1 -0
- package/dist/auth/legacy/routes/index.d.mts +53 -0
- package/dist/auth/legacy/routes/index.d.ts +53 -0
- package/dist/auth/legacy/routes/index.js +278 -0
- package/dist/auth/legacy/routes/index.js.map +1 -0
- package/dist/auth/legacy/routes/index.mjs +271 -0
- package/dist/auth/legacy/routes/index.mjs.map +1 -0
- package/dist/auth/legacy/schema/index.d.mts +401 -0
- package/dist/auth/legacy/schema/index.d.ts +401 -0
- package/dist/auth/legacy/schema/index.js +50 -0
- package/dist/auth/legacy/schema/index.js.map +1 -0
- package/dist/auth/legacy/schema/index.mjs +44 -0
- package/dist/auth/legacy/schema/index.mjs.map +1 -0
- package/dist/auth/legacy/server/index.d.mts +13 -0
- package/dist/auth/legacy/server/index.d.ts +13 -0
- package/dist/auth/legacy/server/index.js +21 -0
- package/dist/auth/legacy/server/index.js.map +1 -0
- package/dist/auth/legacy/server/index.mjs +19 -0
- package/dist/auth/legacy/server/index.mjs.map +1 -0
- package/dist/auth/legacy/services/index.d.mts +40 -0
- package/dist/auth/legacy/services/index.d.ts +40 -0
- package/dist/auth/legacy/services/index.js +258 -0
- package/dist/auth/legacy/services/index.js.map +1 -0
- package/dist/auth/legacy/services/index.mjs +252 -0
- package/dist/auth/legacy/services/index.mjs.map +1 -0
- package/dist/auth/legacy/ui/miniapp/index.d.mts +10 -0
- package/dist/auth/legacy/ui/miniapp/index.d.ts +10 -0
- package/dist/auth/legacy/ui/miniapp/index.js +298 -0
- package/dist/auth/legacy/ui/miniapp/index.js.map +1 -0
- package/dist/auth/legacy/ui/miniapp/index.mjs +290 -0
- package/dist/auth/legacy/ui/miniapp/index.mjs.map +1 -0
- package/dist/auth/legacy/ui/web/index.d.mts +22 -0
- package/dist/auth/legacy/ui/web/index.d.ts +22 -0
- package/dist/auth/legacy/ui/web/index.js +899 -0
- package/dist/auth/legacy/ui/web/index.js.map +1 -0
- package/dist/auth/legacy/ui/web/index.mjs +889 -0
- package/dist/auth/legacy/ui/web/index.mjs.map +1 -0
- package/dist/auth/legacy/web/index.d.mts +5 -0
- package/dist/auth/legacy/web/index.d.ts +5 -0
- package/dist/auth/legacy/web/index.js +1107 -0
- package/dist/auth/legacy/web/index.js.map +1 -0
- package/dist/auth/legacy/web/index.mjs +1086 -0
- package/dist/auth/legacy/web/index.mjs.map +1 -0
- package/dist/auth/rn/index.d.mts +64 -0
- package/dist/auth/rn/index.d.ts +64 -0
- package/dist/auth/rn/index.js +765 -0
- package/dist/auth/rn/index.js.map +1 -0
- package/dist/auth/rn/index.mjs +754 -0
- package/dist/auth/rn/index.mjs.map +1 -0
- package/dist/base-api-client-ACKKt13v.d.mts +277 -0
- package/dist/base-api-client-ACKKt13v.d.ts +277 -0
- package/dist/boothVaultService-Cn4WPhjg.d.mts +83 -0
- package/dist/boothVaultService-Cn4WPhjg.d.ts +83 -0
- package/dist/business/index.d.mts +6 -0
- package/dist/business/index.d.ts +6 -0
- package/dist/business/index.js +1682 -0
- package/dist/business/index.js.map +1 -0
- package/dist/business/index.mjs +1675 -0
- package/dist/business/index.mjs.map +1 -0
- package/dist/calendar/index.d.mts +1325 -0
- package/dist/calendar/index.d.ts +1325 -0
- package/dist/calendar/index.js +5964 -0
- package/dist/calendar/index.js.map +1 -0
- package/dist/calendar/index.mjs +5878 -0
- package/dist/calendar/index.mjs.map +1 -0
- package/dist/components/index.d.mts +405 -0
- package/dist/components/index.d.ts +405 -0
- package/dist/components/index.js +2516 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index.mjs +2396 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/drizzle-schema-BNhqj2AZ.d.mts +1114 -0
- package/dist/drizzle-schema-BNhqj2AZ.d.ts +1114 -0
- package/dist/festivalCard/index.d.mts +75 -0
- package/dist/festivalCard/index.d.ts +75 -0
- package/dist/festivalCard/index.js +1492 -0
- package/dist/festivalCard/index.js.map +1 -0
- package/dist/festivalCard/index.mjs +1475 -0
- package/dist/festivalCard/index.mjs.map +1 -0
- package/dist/festivalCard/server/index.d.mts +120 -0
- package/dist/festivalCard/server/index.d.ts +120 -0
- package/dist/festivalCard/server/index.js +272 -0
- package/dist/festivalCard/server/index.js.map +1 -0
- package/dist/festivalCard/server/index.mjs +265 -0
- package/dist/festivalCard/server/index.mjs.map +1 -0
- package/dist/festivalCardService-CZomuQ4E.d.mts +80 -0
- package/dist/festivalCardService-CZomuQ4E.d.ts +80 -0
- package/dist/index-1Ag7IBXN.d.ts +144 -0
- package/dist/index-DNKZ7-R_.d.mts +184 -0
- package/dist/index-DNKZ7-R_.d.ts +184 -0
- package/dist/index-DSel44Ke.d.mts +93 -0
- package/dist/index-DSel44Ke.d.ts +93 -0
- package/dist/index-DdeZSeTJ.d.mts +144 -0
- package/dist/index-DrPcMJPc.d.mts +250 -0
- package/dist/index-DrPcMJPc.d.ts +250 -0
- package/dist/index.d.mts +5333 -0
- package/dist/index.d.ts +5333 -0
- package/dist/index.js +18809 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +18533 -0
- package/dist/index.mjs.map +1 -0
- package/dist/mikuContest/ui/web/index.d.mts +2 -0
- package/dist/mikuContest/ui/web/index.d.ts +2 -0
- package/dist/mikuContest/ui/web/index.js +353 -0
- package/dist/mikuContest/ui/web/index.js.map +1 -0
- package/dist/mikuContest/ui/web/index.mjs +343 -0
- package/dist/mikuContest/ui/web/index.mjs.map +1 -0
- package/dist/mikuFireworks3D/index.d.mts +268 -0
- package/dist/mikuFireworks3D/index.d.ts +268 -0
- package/dist/mikuFireworks3D/index.js +1267 -0
- package/dist/mikuFireworks3D/index.js.map +1 -0
- package/dist/mikuFireworks3D/index.mjs +1228 -0
- package/dist/mikuFireworks3D/index.mjs.map +1 -0
- package/dist/mikuFusionGame/index.d.mts +117 -0
- package/dist/mikuFusionGame/index.d.ts +117 -0
- package/dist/mikuFusionGame/index.js +1208 -0
- package/dist/mikuFusionGame/index.js.map +1 -0
- package/dist/mikuFusionGame/index.mjs +1195 -0
- package/dist/mikuFusionGame/index.mjs.map +1 -0
- package/dist/mmd/admin/index.d.mts +487 -0
- package/dist/mmd/admin/index.d.ts +487 -0
- package/dist/mmd/admin/index.js +1058 -0
- package/dist/mmd/admin/index.js.map +1 -0
- package/dist/mmd/admin/index.mjs +1027 -0
- package/dist/mmd/admin/index.mjs.map +1 -0
- package/dist/mmd/index.d.mts +2467 -0
- package/dist/mmd/index.d.ts +2467 -0
- package/dist/mmd/index.js +10119 -0
- package/dist/mmd/index.js.map +1 -0
- package/dist/mmd/index.mjs +10028 -0
- package/dist/mmd/index.mjs.map +1 -0
- package/dist/mmd/server/index.d.mts +139 -0
- package/dist/mmd/server/index.d.ts +139 -0
- package/dist/mmd/server/index.js +424 -0
- package/dist/mmd/server/index.js.map +1 -0
- package/dist/mmd/server/index.mjs +404 -0
- package/dist/mmd/server/index.mjs.map +1 -0
- package/dist/music/index.d.mts +74 -0
- package/dist/music/index.d.ts +74 -0
- package/dist/music/index.js +830 -0
- package/dist/music/index.js.map +1 -0
- package/dist/music/index.mjs +809 -0
- package/dist/music/index.mjs.map +1 -0
- package/dist/music/server/index.d.mts +1 -0
- package/dist/music/server/index.d.ts +1 -0
- package/dist/music/server/index.js +194 -0
- package/dist/music/server/index.js.map +1 -0
- package/dist/music/server/index.mjs +182 -0
- package/dist/music/server/index.mjs.map +1 -0
- package/dist/navigation/index.d.mts +93 -0
- package/dist/navigation/index.d.ts +93 -0
- package/dist/navigation/index.js +453 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/navigation/index.mjs +443 -0
- package/dist/navigation/index.mjs.map +1 -0
- package/dist/portfolio/index.d.mts +66 -0
- package/dist/portfolio/index.d.ts +66 -0
- package/dist/portfolio/index.js +736 -0
- package/dist/portfolio/index.js.map +1 -0
- package/dist/portfolio/index.mjs +724 -0
- package/dist/portfolio/index.mjs.map +1 -0
- package/dist/qqbot/server/index.d.mts +216 -0
- package/dist/qqbot/server/index.d.ts +216 -0
- package/dist/qqbot/server/index.js +394 -0
- package/dist/qqbot/server/index.js.map +1 -0
- package/dist/qqbot/server/index.mjs +385 -0
- package/dist/qqbot/server/index.mjs.map +1 -0
- package/dist/qqbot/ui/web/index.d.mts +10 -0
- package/dist/qqbot/ui/web/index.d.ts +10 -0
- package/dist/qqbot/ui/web/index.js +105 -0
- package/dist/qqbot/ui/web/index.js.map +1 -0
- package/dist/qqbot/ui/web/index.mjs +99 -0
- package/dist/qqbot/ui/web/index.mjs.map +1 -0
- package/dist/screenReceiver/index.d.mts +86 -0
- package/dist/screenReceiver/index.d.ts +86 -0
- package/dist/screenReceiver/index.js +281 -0
- package/dist/screenReceiver/index.js.map +1 -0
- package/dist/screenReceiver/index.mjs +273 -0
- package/dist/screenReceiver/index.mjs.map +1 -0
- package/dist/testYourself/admin/index.d.mts +58 -0
- package/dist/testYourself/admin/index.d.ts +58 -0
- package/dist/testYourself/admin/index.js +1009 -0
- package/dist/testYourself/admin/index.js.map +1 -0
- package/dist/testYourself/admin/index.mjs +1002 -0
- package/dist/testYourself/admin/index.mjs.map +1 -0
- package/dist/testYourself/index.d.mts +53 -0
- package/dist/testYourself/index.d.ts +53 -0
- package/dist/testYourself/index.js +2551 -0
- package/dist/testYourself/index.js.map +1 -0
- package/dist/testYourself/index.mjs +2531 -0
- package/dist/testYourself/index.mjs.map +1 -0
- package/dist/testYourself/server/index.d.mts +1029 -0
- package/dist/testYourself/server/index.d.ts +1029 -0
- package/dist/testYourself/server/index.js +825 -0
- package/dist/testYourself/server/index.js.map +1 -0
- package/dist/testYourself/server/index.mjs +816 -0
- package/dist/testYourself/server/index.mjs.map +1 -0
- package/dist/types-BTiaMsBz.d.mts +292 -0
- package/dist/types-DyG3ZV9V.d.mts +270 -0
- package/dist/types-DyG3ZV9V.d.ts +270 -0
- package/dist/types-ERmJyjx8.d.ts +292 -0
- package/dist/types-HorDyIRv.d.mts +303 -0
- package/dist/types-HorDyIRv.d.ts +303 -0
- package/dist/vocaloidBooth/index.d.mts +64 -0
- package/dist/vocaloidBooth/index.d.ts +64 -0
- package/dist/vocaloidBooth/index.js +376 -0
- package/dist/vocaloidBooth/index.js.map +1 -0
- package/dist/vocaloidBooth/index.mjs +362 -0
- package/dist/vocaloidBooth/index.mjs.map +1 -0
- package/dist/vocaloidBooth/server/index.d.mts +111 -0
- package/dist/vocaloidBooth/server/index.d.ts +111 -0
- package/dist/vocaloidBooth/server/index.js +247 -0
- package/dist/vocaloidBooth/server/index.js.map +1 -0
- package/dist/vocaloidBooth/server/index.mjs +237 -0
- package/dist/vocaloidBooth/server/index.mjs.map +1 -0
- package/dist/vocaloidBooth/web/index.d.mts +3 -0
- package/dist/vocaloidBooth/web/index.d.ts +3 -0
- package/dist/vocaloidBooth/web/index.js +376 -0
- package/dist/vocaloidBooth/web/index.js.map +1 -0
- package/dist/vocaloidBooth/web/index.mjs +362 -0
- package/dist/vocaloidBooth/web/index.mjs.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { a as UploadFileInfo, S as StorageType, c as UploadProgress, F as FileMetadata, d as FileQueryOptions, e as PaginatedResult, B as BatchOperationResult, f as FileEventListener } from './types-DyG3ZV9V.mjs';
|
|
3
|
+
import { U as UniversalFileServiceConfig, I as IStorageProvider, a as ICDNProvider, b as IFileProcessor } from './types-BTiaMsBz.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 通用文件服务核心实现
|
|
7
|
+
*
|
|
8
|
+
* 提供统一的文件上传、下载、管理接口
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* 通用文件服务类
|
|
13
|
+
*/
|
|
14
|
+
declare class UniversalFileService extends EventEmitter {
|
|
15
|
+
private config;
|
|
16
|
+
private storageProviders;
|
|
17
|
+
private cdnProviders;
|
|
18
|
+
private fileProcessors;
|
|
19
|
+
private uploadProgressMap;
|
|
20
|
+
private metadataCache;
|
|
21
|
+
private urlCache;
|
|
22
|
+
private processingQueue;
|
|
23
|
+
private isProcessingQueueRunning;
|
|
24
|
+
constructor(config: UniversalFileServiceConfig);
|
|
25
|
+
/**
|
|
26
|
+
* 设置数据库持久化监听器
|
|
27
|
+
*
|
|
28
|
+
* 当文件上传完成或删除时,自动触发数据库操作
|
|
29
|
+
*/
|
|
30
|
+
private setupPersistenceListeners;
|
|
31
|
+
/**
|
|
32
|
+
* 初始化文件服务
|
|
33
|
+
*/
|
|
34
|
+
initialize(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* 重新初始化存储提供者(支持配置热更新)
|
|
37
|
+
*/
|
|
38
|
+
reinitializeStorageProviders(): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* 注册存储提供者
|
|
41
|
+
*/
|
|
42
|
+
registerStorageProvider(provider: IStorageProvider): void;
|
|
43
|
+
/**
|
|
44
|
+
* 注册CDN提供者
|
|
45
|
+
*/
|
|
46
|
+
registerCDNProvider(provider: ICDNProvider): void;
|
|
47
|
+
/**
|
|
48
|
+
* 注册文件处理器
|
|
49
|
+
*/
|
|
50
|
+
registerFileProcessor(processor: IFileProcessor): void;
|
|
51
|
+
/**
|
|
52
|
+
* 上传文件
|
|
53
|
+
*/
|
|
54
|
+
uploadFile(fileInfo: UploadFileInfo, storageType?: StorageType, onProgress?: (progress: UploadProgress) => void): Promise<FileMetadata>;
|
|
55
|
+
/**
|
|
56
|
+
* 下载文件
|
|
57
|
+
*/
|
|
58
|
+
downloadFile(fileId: string, userId?: string): Promise<Buffer>;
|
|
59
|
+
/**
|
|
60
|
+
* 删除文件
|
|
61
|
+
*/
|
|
62
|
+
deleteFile(fileId: string, userId?: string): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* 获取文件访问URL
|
|
65
|
+
*/
|
|
66
|
+
getFileUrl(fileId: string, userId?: string, expiresIn?: number): Promise<string>;
|
|
67
|
+
/**
|
|
68
|
+
* 获取文件元数据
|
|
69
|
+
*/
|
|
70
|
+
getFileMetadata(fileId: string): Promise<FileMetadata | null>;
|
|
71
|
+
/**
|
|
72
|
+
* 查询文件列表
|
|
73
|
+
*/
|
|
74
|
+
queryFiles(options: FileQueryOptions): Promise<PaginatedResult<FileMetadata>>;
|
|
75
|
+
/**
|
|
76
|
+
* 批量删除文件
|
|
77
|
+
*/
|
|
78
|
+
batchDeleteFiles(fileIds: string[], userId?: string): Promise<BatchOperationResult>;
|
|
79
|
+
/**
|
|
80
|
+
* 获取上传进度
|
|
81
|
+
*/
|
|
82
|
+
getUploadProgress(fileId: string): UploadProgress | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* 监听文件事件
|
|
85
|
+
*/
|
|
86
|
+
onFileEvent(eventType: string, listener: FileEventListener): void;
|
|
87
|
+
/**
|
|
88
|
+
* 移除文件事件监听器
|
|
89
|
+
*/
|
|
90
|
+
offFileEvent(eventType: string, listener: FileEventListener): void;
|
|
91
|
+
/**
|
|
92
|
+
* 验证配置是否完整
|
|
93
|
+
*/
|
|
94
|
+
private validateConfiguration;
|
|
95
|
+
private initializeStorageProviders;
|
|
96
|
+
private registerDefaultStorageProviders;
|
|
97
|
+
private initializeCDNProviders;
|
|
98
|
+
private initializeFileProcessors;
|
|
99
|
+
private validateFile;
|
|
100
|
+
private generateFileMetadata;
|
|
101
|
+
private generateStoragePath;
|
|
102
|
+
private generateFileHash;
|
|
103
|
+
private queueFileProcessing;
|
|
104
|
+
private generateProcessedPath;
|
|
105
|
+
private processFileQueue;
|
|
106
|
+
private cacheMetadata;
|
|
107
|
+
private clearMetadataCache;
|
|
108
|
+
private emitFileEvent;
|
|
109
|
+
/**
|
|
110
|
+
* 保存文件元数据到数据库 (通过持久化仓储)
|
|
111
|
+
*/
|
|
112
|
+
private saveFileMetadata;
|
|
113
|
+
/**
|
|
114
|
+
* 从数据库删除文件元数据 (通过持久化仓储)
|
|
115
|
+
*/
|
|
116
|
+
private deleteFileMetadata;
|
|
117
|
+
/**
|
|
118
|
+
* 更新访问统计
|
|
119
|
+
*/
|
|
120
|
+
private updateAccessStats;
|
|
121
|
+
/**
|
|
122
|
+
* 检查文件访问权限
|
|
123
|
+
*/
|
|
124
|
+
private checkFileAccess;
|
|
125
|
+
/**
|
|
126
|
+
* 检查文件删除权限
|
|
127
|
+
*/
|
|
128
|
+
private checkFileDeleteAccess;
|
|
129
|
+
/**
|
|
130
|
+
* 检查服务是否完全可用(包括存储提供者)
|
|
131
|
+
*/
|
|
132
|
+
isFullyInitialized(): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* 等待服务完全初始化(带超时)
|
|
135
|
+
*/
|
|
136
|
+
waitForInitialization(timeoutMs?: number): Promise<void>;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export { UniversalFileService as U };
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { a as UploadFileInfo, S as StorageType, c as UploadProgress, F as FileMetadata, d as FileQueryOptions, e as PaginatedResult, B as BatchOperationResult, f as FileEventListener } from './types-DyG3ZV9V.js';
|
|
3
|
+
import { U as UniversalFileServiceConfig, I as IStorageProvider, a as ICDNProvider, b as IFileProcessor } from './types-ERmJyjx8.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 通用文件服务核心实现
|
|
7
|
+
*
|
|
8
|
+
* 提供统一的文件上传、下载、管理接口
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* 通用文件服务类
|
|
13
|
+
*/
|
|
14
|
+
declare class UniversalFileService extends EventEmitter {
|
|
15
|
+
private config;
|
|
16
|
+
private storageProviders;
|
|
17
|
+
private cdnProviders;
|
|
18
|
+
private fileProcessors;
|
|
19
|
+
private uploadProgressMap;
|
|
20
|
+
private metadataCache;
|
|
21
|
+
private urlCache;
|
|
22
|
+
private processingQueue;
|
|
23
|
+
private isProcessingQueueRunning;
|
|
24
|
+
constructor(config: UniversalFileServiceConfig);
|
|
25
|
+
/**
|
|
26
|
+
* 设置数据库持久化监听器
|
|
27
|
+
*
|
|
28
|
+
* 当文件上传完成或删除时,自动触发数据库操作
|
|
29
|
+
*/
|
|
30
|
+
private setupPersistenceListeners;
|
|
31
|
+
/**
|
|
32
|
+
* 初始化文件服务
|
|
33
|
+
*/
|
|
34
|
+
initialize(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* 重新初始化存储提供者(支持配置热更新)
|
|
37
|
+
*/
|
|
38
|
+
reinitializeStorageProviders(): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* 注册存储提供者
|
|
41
|
+
*/
|
|
42
|
+
registerStorageProvider(provider: IStorageProvider): void;
|
|
43
|
+
/**
|
|
44
|
+
* 注册CDN提供者
|
|
45
|
+
*/
|
|
46
|
+
registerCDNProvider(provider: ICDNProvider): void;
|
|
47
|
+
/**
|
|
48
|
+
* 注册文件处理器
|
|
49
|
+
*/
|
|
50
|
+
registerFileProcessor(processor: IFileProcessor): void;
|
|
51
|
+
/**
|
|
52
|
+
* 上传文件
|
|
53
|
+
*/
|
|
54
|
+
uploadFile(fileInfo: UploadFileInfo, storageType?: StorageType, onProgress?: (progress: UploadProgress) => void): Promise<FileMetadata>;
|
|
55
|
+
/**
|
|
56
|
+
* 下载文件
|
|
57
|
+
*/
|
|
58
|
+
downloadFile(fileId: string, userId?: string): Promise<Buffer>;
|
|
59
|
+
/**
|
|
60
|
+
* 删除文件
|
|
61
|
+
*/
|
|
62
|
+
deleteFile(fileId: string, userId?: string): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* 获取文件访问URL
|
|
65
|
+
*/
|
|
66
|
+
getFileUrl(fileId: string, userId?: string, expiresIn?: number): Promise<string>;
|
|
67
|
+
/**
|
|
68
|
+
* 获取文件元数据
|
|
69
|
+
*/
|
|
70
|
+
getFileMetadata(fileId: string): Promise<FileMetadata | null>;
|
|
71
|
+
/**
|
|
72
|
+
* 查询文件列表
|
|
73
|
+
*/
|
|
74
|
+
queryFiles(options: FileQueryOptions): Promise<PaginatedResult<FileMetadata>>;
|
|
75
|
+
/**
|
|
76
|
+
* 批量删除文件
|
|
77
|
+
*/
|
|
78
|
+
batchDeleteFiles(fileIds: string[], userId?: string): Promise<BatchOperationResult>;
|
|
79
|
+
/**
|
|
80
|
+
* 获取上传进度
|
|
81
|
+
*/
|
|
82
|
+
getUploadProgress(fileId: string): UploadProgress | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* 监听文件事件
|
|
85
|
+
*/
|
|
86
|
+
onFileEvent(eventType: string, listener: FileEventListener): void;
|
|
87
|
+
/**
|
|
88
|
+
* 移除文件事件监听器
|
|
89
|
+
*/
|
|
90
|
+
offFileEvent(eventType: string, listener: FileEventListener): void;
|
|
91
|
+
/**
|
|
92
|
+
* 验证配置是否完整
|
|
93
|
+
*/
|
|
94
|
+
private validateConfiguration;
|
|
95
|
+
private initializeStorageProviders;
|
|
96
|
+
private registerDefaultStorageProviders;
|
|
97
|
+
private initializeCDNProviders;
|
|
98
|
+
private initializeFileProcessors;
|
|
99
|
+
private validateFile;
|
|
100
|
+
private generateFileMetadata;
|
|
101
|
+
private generateStoragePath;
|
|
102
|
+
private generateFileHash;
|
|
103
|
+
private queueFileProcessing;
|
|
104
|
+
private generateProcessedPath;
|
|
105
|
+
private processFileQueue;
|
|
106
|
+
private cacheMetadata;
|
|
107
|
+
private clearMetadataCache;
|
|
108
|
+
private emitFileEvent;
|
|
109
|
+
/**
|
|
110
|
+
* 保存文件元数据到数据库 (通过持久化仓储)
|
|
111
|
+
*/
|
|
112
|
+
private saveFileMetadata;
|
|
113
|
+
/**
|
|
114
|
+
* 从数据库删除文件元数据 (通过持久化仓储)
|
|
115
|
+
*/
|
|
116
|
+
private deleteFileMetadata;
|
|
117
|
+
/**
|
|
118
|
+
* 更新访问统计
|
|
119
|
+
*/
|
|
120
|
+
private updateAccessStats;
|
|
121
|
+
/**
|
|
122
|
+
* 检查文件访问权限
|
|
123
|
+
*/
|
|
124
|
+
private checkFileAccess;
|
|
125
|
+
/**
|
|
126
|
+
* 检查文件删除权限
|
|
127
|
+
*/
|
|
128
|
+
private checkFileDeleteAccess;
|
|
129
|
+
/**
|
|
130
|
+
* 检查服务是否完全可用(包括存储提供者)
|
|
131
|
+
*/
|
|
132
|
+
isFullyInitialized(): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* 等待服务完全初始化(带超时)
|
|
135
|
+
*/
|
|
136
|
+
waitForInitialization(timeoutMs?: number): Promise<void>;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export { UniversalFileService as U };
|