sa2kit 1.6.43 → 1.6.45
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/AliyunOSSProvider-2FARPAQD.js +15 -0
- package/dist/{AliyunOSSProvider-HCNGDJL7.js.map → AliyunOSSProvider-2FARPAQD.js.map} +1 -1
- package/dist/AliyunOSSProvider-UMVGVBDJ.mjs +9 -0
- package/dist/{AliyunOSSProvider-4W47OFEK.mjs.map → AliyunOSSProvider-UMVGVBDJ.mjs.map} +1 -1
- package/dist/CollisionBalls-BpHufX3H.d.mts +41 -0
- package/dist/CollisionBalls-BpHufX3H.d.ts +41 -0
- package/dist/ConfigService-QR67WYNK.mjs +4 -0
- package/dist/{ConfigService-V6ZK273Z.mjs.map → ConfigService-QR67WYNK.mjs.map} +1 -1
- package/dist/{ConfigService-3DIC6C3Q.js → ConfigService-UYC6ZTCM.js} +3 -3
- package/dist/{ConfigService-3DIC6C3Q.js.map → ConfigService-UYC6ZTCM.js.map} +1 -1
- package/dist/GenericOrderManager-e4WizpNf.d.mts +28 -0
- package/dist/GenericOrderManager-e4WizpNf.d.ts +28 -0
- package/dist/LocalStorageProvider-JQF5WK5H.js +15 -0
- package/dist/{LocalStorageProvider-PP7MA5OT.js.map → LocalStorageProvider-JQF5WK5H.js.map} +1 -1
- package/dist/LocalStorageProvider-PYOHETJV.mjs +9 -0
- package/dist/{LocalStorageProvider-3RVPCQB3.mjs.map → LocalStorageProvider-PYOHETJV.mjs.map} +1 -1
- package/dist/PMXParser-RLBDO7YK.mjs +4 -0
- package/dist/{PMXParser-RNVQL76A.mjs.map → PMXParser-RLBDO7YK.mjs.map} +1 -1
- package/dist/{PMXParser-2VTA737I.js → PMXParser-XHNO2KNI.js} +3 -3
- package/dist/{PMXParser-2VTA737I.js.map → PMXParser-XHNO2KNI.js.map} +1 -1
- package/dist/UniversalFileService-RBV6EN5J.js +15 -0
- package/dist/UniversalFileService-RBV6EN5J.js.map +1 -0
- package/dist/UniversalFileService-TNYKO6JN.mjs +9 -0
- package/dist/UniversalFileService-TNYKO6JN.mjs.map +1 -0
- package/dist/analytics/index.js +1 -1
- package/dist/analytics/index.mjs +1 -1
- package/dist/analytics/server/index.js +1 -1
- package/dist/analytics/server/index.mjs +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/index.mjs +1 -1
- package/dist/audioDetection/index.js +1 -1
- package/dist/audioDetection/index.mjs +1 -1
- package/dist/auth/client/index.js +1 -1
- package/dist/auth/client/index.mjs +1 -1
- package/dist/auth/components/index.js +1 -1
- package/dist/auth/components/index.mjs +1 -1
- package/dist/auth/hooks/index.js +1 -1
- package/dist/auth/hooks/index.mjs +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/auth/index.mjs +1 -1
- package/dist/auth/middleware/index.js +1 -1
- package/dist/auth/middleware/index.mjs +1 -1
- package/dist/auth/routes/index.js +1 -1
- package/dist/auth/routes/index.mjs +1 -1
- package/dist/auth/schema/index.js +1 -1
- package/dist/auth/schema/index.mjs +1 -1
- package/dist/auth/services/index.js +1 -1
- package/dist/auth/services/index.mjs +1 -1
- package/dist/calendar/index.js +12 -12
- package/dist/calendar/index.mjs +5 -5
- package/dist/calendar/routes/index.js +1 -1
- package/dist/calendar/routes/index.mjs +1 -1
- package/dist/calendar/server.js +1 -1
- package/dist/calendar/server.mjs +1 -1
- package/dist/chunk-2PS5PIXV.mjs +443 -0
- package/dist/chunk-2PS5PIXV.mjs.map +1 -0
- package/dist/chunk-35CXIK5Y.js +277 -0
- package/dist/chunk-35CXIK5Y.js.map +1 -0
- package/dist/{chunk-GMIUSZXC.mjs → chunk-3JW4X3AC.mjs} +3 -3
- package/dist/{chunk-GMIUSZXC.mjs.map → chunk-3JW4X3AC.mjs.map} +1 -1
- package/dist/chunk-3M6T5KVD.js +453 -0
- package/dist/chunk-3M6T5KVD.js.map +1 -0
- package/dist/chunk-3TNR6IMC.js +168 -0
- package/dist/chunk-3TNR6IMC.js.map +1 -0
- package/dist/chunk-4NFOSCM6.js +34 -0
- package/dist/chunk-4NFOSCM6.js.map +1 -0
- package/dist/{chunk-3NHAT7D4.mjs → chunk-4VJQZSPU.mjs} +4 -3
- package/dist/chunk-4VJQZSPU.mjs.map +1 -0
- package/dist/{chunk-SCDDMIF6.js → chunk-4XXIBWCO.js} +66 -66
- package/dist/{chunk-SCDDMIF6.js.map → chunk-4XXIBWCO.js.map} +1 -1
- package/dist/chunk-6AHYPPUP.js +344 -0
- package/dist/chunk-6AHYPPUP.js.map +1 -0
- package/dist/{chunk-EGJPS7OL.mjs → chunk-6BJ76BYC.mjs} +3 -3
- package/dist/{chunk-EGJPS7OL.mjs.map → chunk-6BJ76BYC.mjs.map} +1 -1
- package/dist/chunk-76V7EKBX.mjs +796 -0
- package/dist/chunk-76V7EKBX.mjs.map +1 -0
- package/dist/chunk-ACLOJXXE.js +195 -0
- package/dist/chunk-ACLOJXXE.js.map +1 -0
- package/dist/chunk-AEXPAH7Z.mjs +32 -0
- package/dist/chunk-AEXPAH7Z.mjs.map +1 -0
- package/dist/chunk-CFGX3EKK.js +560 -0
- package/dist/chunk-CFGX3EKK.js.map +1 -0
- package/dist/{chunk-435LATLS.mjs → chunk-CX5GPCCO.mjs} +3 -4
- package/dist/chunk-CX5GPCCO.mjs.map +1 -0
- package/dist/chunk-D2HXMGXS.js +46 -0
- package/dist/chunk-D2HXMGXS.js.map +1 -0
- package/dist/chunk-DM2GUVUH.js +1201 -0
- package/dist/chunk-DM2GUVUH.js.map +1 -0
- package/dist/{chunk-ZWQJSZEY.js → chunk-DVENFCQY.js} +5 -4
- package/dist/chunk-DVENFCQY.js.map +1 -0
- package/dist/chunk-EONPKLEJ.mjs +163 -0
- package/dist/chunk-EONPKLEJ.mjs.map +1 -0
- package/dist/{chunk-L47ZOYHL.js → chunk-EUIXQPPU.js} +4 -4
- package/dist/{chunk-L47ZOYHL.js.map → chunk-EUIXQPPU.js.map} +1 -1
- package/dist/{chunk-33YOJBQB.js → chunk-JOSNXSA6.js} +3 -4
- package/dist/chunk-JOSNXSA6.js.map +1 -0
- package/dist/chunk-K7WNCB4V.mjs +554 -0
- package/dist/chunk-K7WNCB4V.mjs.map +1 -0
- package/dist/chunk-L4ZYBFB2.mjs +44 -0
- package/dist/chunk-L4ZYBFB2.mjs.map +1 -0
- package/dist/chunk-M4HGHTIC.js +820 -0
- package/dist/chunk-M4HGHTIC.js.map +1 -0
- package/dist/{chunk-HHVDOIPV.js → chunk-MZKATHB7.js} +4 -4
- package/dist/{chunk-HHVDOIPV.js.map → chunk-MZKATHB7.js.map} +1 -1
- package/dist/{chunk-UKT3PLON.mjs → chunk-NXQVTAOP.mjs} +3 -3
- package/dist/{chunk-UKT3PLON.mjs.map → chunk-NXQVTAOP.mjs.map} +1 -1
- package/dist/chunk-OBIPI4GU.mjs +266 -0
- package/dist/chunk-OBIPI4GU.mjs.map +1 -0
- package/dist/chunk-PAX4S7QM.mjs +94 -0
- package/dist/chunk-PAX4S7QM.mjs.map +1 -0
- package/dist/chunk-PXWDQFWV.mjs +192 -0
- package/dist/chunk-PXWDQFWV.mjs.map +1 -0
- package/dist/chunk-QROLPPXP.mjs +5797 -0
- package/dist/chunk-QROLPPXP.mjs.map +1 -0
- package/dist/chunk-TGNUEULF.mjs +1158 -0
- package/dist/chunk-TGNUEULF.mjs.map +1 -0
- package/dist/chunk-VBQFVXOW.mjs +2772 -0
- package/dist/chunk-VBQFVXOW.mjs.map +1 -0
- package/dist/chunk-VLZ5N6XZ.js +5888 -0
- package/dist/chunk-VLZ5N6XZ.js.map +1 -0
- package/dist/chunk-VTGPHE4Z.mjs +322 -0
- package/dist/chunk-VTGPHE4Z.mjs.map +1 -0
- package/dist/chunk-WMJKH4XE.mjs +30 -0
- package/dist/{chunk-BJTO5JO5.mjs.map → chunk-WMJKH4XE.mjs.map} +1 -1
- package/dist/chunk-XYQMAF7H.js +96 -0
- package/dist/chunk-XYQMAF7H.js.map +1 -0
- package/dist/chunk-Z3G3IXEF.js +2814 -0
- package/dist/chunk-Z3G3IXEF.js.map +1 -0
- package/dist/chunk-Z6ZWNWWR.js +35 -0
- package/dist/{chunk-DGUM43GV.js.map → chunk-Z6ZWNWWR.js.map} +1 -1
- package/dist/components/index.d.mts +378 -0
- package/dist/components/index.d.ts +378 -0
- package/dist/components/index.js +414 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index.mjs +9 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/config/index.js +1 -1
- package/dist/config/index.mjs +1 -1
- package/dist/config/server/index.js +1 -1
- package/dist/config/server/index.mjs +1 -1
- package/dist/fileService-O3W6YXCI.mjs +4 -0
- package/dist/fileService-O3W6YXCI.mjs.map +1 -0
- package/dist/fileService-YUDIYOAS.js +13 -0
- package/dist/fileService-YUDIYOAS.js.map +1 -0
- package/dist/i18n/index.js +7 -7
- package/dist/i18n/index.mjs +1 -1
- package/dist/imageCrop/index.js +1 -1
- package/dist/imageCrop/index.mjs +1 -1
- package/dist/index.d.mts +9 -580
- package/dist/index.d.ts +9 -580
- package/dist/index.js +313 -972
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +104 -790
- package/dist/index.mjs.map +1 -1
- package/dist/logger/index.js +8 -8
- package/dist/logger/index.mjs +5 -2
- package/dist/mikuFireworks3D/index.js +17 -17
- package/dist/mikuFireworks3D/index.mjs +2 -2
- package/dist/mikuFireworks3D/server/index.js +1 -1
- package/dist/mikuFireworks3D/server/index.mjs +1 -1
- package/dist/mikuFusionGame/index.js +5 -5
- package/dist/mikuFusionGame/index.mjs +4 -4
- package/dist/mmd/admin/index.js +1 -1
- package/dist/mmd/admin/index.mjs +1 -1
- package/dist/mmd/index.js +2 -2
- package/dist/mmd/index.mjs +2 -2
- package/dist/mmd/server/index.js +1 -1
- package/dist/mmd/server/index.mjs +1 -1
- package/dist/music/index.js +1 -1
- package/dist/music/index.mjs +1 -1
- package/dist/music/server/index.js +1 -1
- package/dist/music/server/index.mjs +1 -1
- package/dist/navigation/index.d.mts +93 -0
- package/dist/navigation/index.d.ts +93 -0
- package/dist/navigation/index.js +29 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/navigation/index.mjs +4 -0
- package/dist/navigation/index.mjs.map +1 -0
- package/dist/popupConfig-BznThU1O.d.mts +330 -0
- package/dist/popupConfig-BznThU1O.d.ts +330 -0
- package/dist/portfolio/index.d.mts +57 -0
- package/dist/portfolio/index.d.ts +57 -0
- package/dist/portfolio/index.js +35 -0
- package/dist/portfolio/index.js.map +1 -0
- package/dist/portfolio/index.mjs +10 -0
- package/dist/portfolio/index.mjs.map +1 -0
- package/dist/request/index.js +1 -1
- package/dist/request/index.mjs +1 -1
- package/dist/showmasterpiece/index.d.mts +2524 -0
- package/dist/showmasterpiece/index.d.ts +2524 -0
- package/dist/showmasterpiece/index.js +9681 -0
- package/dist/showmasterpiece/index.js.map +1 -0
- package/dist/showmasterpiece/index.mjs +9631 -0
- package/dist/showmasterpiece/index.mjs.map +1 -0
- package/dist/showmasterpiece/migration/index.d.mts +120 -0
- package/dist/showmasterpiece/migration/index.d.ts +120 -0
- package/dist/showmasterpiece/migration/index.js +595 -0
- package/dist/showmasterpiece/migration/index.js.map +1 -0
- package/dist/showmasterpiece/migration/index.mjs +589 -0
- package/dist/showmasterpiece/migration/index.mjs.map +1 -0
- package/dist/showmasterpiece/scripts/index.d.mts +28 -0
- package/dist/showmasterpiece/scripts/index.d.ts +28 -0
- package/dist/showmasterpiece/scripts/index.js +327 -0
- package/dist/showmasterpiece/scripts/index.js.map +1 -0
- package/dist/showmasterpiece/scripts/index.mjs +325 -0
- package/dist/showmasterpiece/scripts/index.mjs.map +1 -0
- package/dist/showmasterpiece/server/index.d.mts +2698 -0
- package/dist/showmasterpiece/server/index.d.ts +2698 -0
- package/dist/showmasterpiece/server/index.js +179 -0
- package/dist/showmasterpiece/server/index.js.map +1 -0
- package/dist/showmasterpiece/server/index.mjs +6 -0
- package/dist/showmasterpiece/server/index.mjs.map +1 -0
- package/dist/storage/index.js +8 -8
- package/dist/storage/index.mjs +2 -2
- package/dist/testYourself/admin/index.js +1 -1
- package/dist/testYourself/admin/index.mjs +1 -1
- package/dist/testYourself/index.js +2 -2
- package/dist/testYourself/index.mjs +2 -2
- package/dist/testYourself/server/index.js +1 -1
- package/dist/testYourself/server/index.mjs +1 -1
- package/dist/universalExport/index.js +154 -1195
- package/dist/universalExport/index.js.map +1 -1
- package/dist/universalExport/index.mjs +2 -1157
- package/dist/universalExport/index.mjs.map +1 -1
- package/dist/universalExport/server/index.js +5 -3
- package/dist/universalExport/server/index.js.map +1 -1
- package/dist/universalExport/server/index.mjs +4 -2
- package/dist/universalExport/server/index.mjs.map +1 -1
- package/dist/universalFile/index.js +10 -7
- package/dist/universalFile/index.js.map +1 -1
- package/dist/universalFile/index.mjs +6 -2
- package/dist/universalFile/index.mjs.map +1 -1
- package/dist/universalFile/server/index.d.mts +592 -265
- package/dist/universalFile/server/index.d.ts +592 -265
- package/dist/universalFile/server/index.js +298 -5637
- package/dist/universalFile/server/index.js.map +1 -1
- package/dist/universalFile/server/index.mjs +8 -5559
- package/dist/universalFile/server/index.mjs.map +1 -1
- package/dist/utils/index.js +12 -12
- package/dist/utils/index.mjs +3 -3
- package/package.json +36 -1
- package/dist/AliyunOSSProvider-4W47OFEK.mjs +0 -6
- package/dist/AliyunOSSProvider-HCNGDJL7.js +0 -15
- package/dist/ConfigService-V6ZK273Z.mjs +0 -4
- package/dist/LocalStorageProvider-3RVPCQB3.mjs +0 -6
- package/dist/LocalStorageProvider-PP7MA5OT.js +0 -15
- package/dist/PMXParser-RNVQL76A.mjs +0 -4
- package/dist/chunk-25OFOKNF.js +0 -171
- package/dist/chunk-25OFOKNF.js.map +0 -1
- package/dist/chunk-33YOJBQB.js.map +0 -1
- package/dist/chunk-3DXPQ4YV.mjs +0 -165
- package/dist/chunk-3DXPQ4YV.mjs.map +0 -1
- package/dist/chunk-3NHAT7D4.mjs.map +0 -1
- package/dist/chunk-435LATLS.mjs.map +0 -1
- package/dist/chunk-BJTO5JO5.mjs +0 -10
- package/dist/chunk-CIVO4R6N.mjs +0 -37
- package/dist/chunk-CIVO4R6N.mjs.map +0 -1
- package/dist/chunk-DGUM43GV.js +0 -12
- package/dist/chunk-HDMIOOZY.mjs +0 -546
- package/dist/chunk-HDMIOOZY.mjs.map +0 -1
- package/dist/chunk-HJ6MH7J7.js +0 -552
- package/dist/chunk-HJ6MH7J7.js.map +0 -1
- package/dist/chunk-KH6RQ4J5.js +0 -28
- package/dist/chunk-KH6RQ4J5.js.map +0 -1
- package/dist/chunk-Q5EDCKQA.js +0 -336
- package/dist/chunk-Q5EDCKQA.js.map +0 -1
- package/dist/chunk-YOTQG4NP.mjs +0 -314
- package/dist/chunk-YOTQG4NP.mjs.map +0 -1
- package/dist/chunk-ZGVB35L2.mjs +0 -25
- package/dist/chunk-ZGVB35L2.mjs.map +0 -1
- package/dist/chunk-ZRAW3HXA.js +0 -43
- package/dist/chunk-ZRAW3HXA.js.map +0 -1
- package/dist/chunk-ZWQJSZEY.js.map +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ShowMasterpiece模块 - 作品图片迁移工具
|
|
3
|
+
*
|
|
4
|
+
* 将现有的Base64图片数据迁移到通用文件服务系统
|
|
5
|
+
*
|
|
6
|
+
* 主要功能:
|
|
7
|
+
* - Base64图片解析和验证
|
|
8
|
+
* - 上传到通用文件服务
|
|
9
|
+
* - 更新数据库引用
|
|
10
|
+
* - 迁移状态跟踪
|
|
11
|
+
* - 回滚机制
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* 迁移配置接口
|
|
15
|
+
*/
|
|
16
|
+
interface MigrationConfig {
|
|
17
|
+
/** 批处理大小 */
|
|
18
|
+
batchSize: number;
|
|
19
|
+
/** 是否试运行 */
|
|
20
|
+
dryRun: boolean;
|
|
21
|
+
/** 是否验证文件完整性 */
|
|
22
|
+
validateFiles: boolean;
|
|
23
|
+
/** 是否备份原数据 */
|
|
24
|
+
backupOldData: boolean;
|
|
25
|
+
/** 是否强制覆盖已存在的文件 */
|
|
26
|
+
forceOverwrite: boolean;
|
|
27
|
+
/** 是否上传到OSS */
|
|
28
|
+
enableOSSUpload: boolean;
|
|
29
|
+
/** 指定画集ID(空表示全部) */
|
|
30
|
+
collectionIds?: number[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 迁移统计信息
|
|
34
|
+
*/
|
|
35
|
+
interface MigrationStats {
|
|
36
|
+
totalArtworks: number;
|
|
37
|
+
processedCount: number;
|
|
38
|
+
successCount: number;
|
|
39
|
+
failedCount: number;
|
|
40
|
+
skippedCount: number;
|
|
41
|
+
totalFileSize: number;
|
|
42
|
+
processedFileSize: number;
|
|
43
|
+
errors: Array<{
|
|
44
|
+
artworkId: number;
|
|
45
|
+
error: string;
|
|
46
|
+
timestamp: Date;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 作品迁移器类
|
|
51
|
+
*/
|
|
52
|
+
declare class ArtworkMigrator {
|
|
53
|
+
private readonly db;
|
|
54
|
+
private config;
|
|
55
|
+
private stats;
|
|
56
|
+
private folderCache;
|
|
57
|
+
private storageProviderCache;
|
|
58
|
+
constructor(db: any, config: MigrationConfig);
|
|
59
|
+
/**
|
|
60
|
+
* 开始迁移
|
|
61
|
+
*/
|
|
62
|
+
migrate(): Promise<MigrationStats>;
|
|
63
|
+
/**
|
|
64
|
+
* 分析现有数据
|
|
65
|
+
*/
|
|
66
|
+
private analyzeData;
|
|
67
|
+
/**
|
|
68
|
+
* 准备迁移环境
|
|
69
|
+
*/
|
|
70
|
+
private prepareMigrationEnvironment;
|
|
71
|
+
/**
|
|
72
|
+
* 确保存储提供者存在
|
|
73
|
+
*/
|
|
74
|
+
private ensureStorageProvider;
|
|
75
|
+
/**
|
|
76
|
+
* 确保模块文件夹存在
|
|
77
|
+
*/
|
|
78
|
+
private ensureModuleFolders;
|
|
79
|
+
/**
|
|
80
|
+
* 备份原始数据
|
|
81
|
+
*/
|
|
82
|
+
private backupOriginalData;
|
|
83
|
+
/**
|
|
84
|
+
* 执行批量迁移
|
|
85
|
+
*/
|
|
86
|
+
private performBatchMigration;
|
|
87
|
+
/**
|
|
88
|
+
* 迁移单个作品
|
|
89
|
+
*/
|
|
90
|
+
private migrateArtwork;
|
|
91
|
+
/**
|
|
92
|
+
* 解析Base64图片
|
|
93
|
+
*/
|
|
94
|
+
private parseBase64Image;
|
|
95
|
+
/**
|
|
96
|
+
* 生成迁移报告
|
|
97
|
+
*/
|
|
98
|
+
private generateReport;
|
|
99
|
+
/**
|
|
100
|
+
* 回滚单个作品
|
|
101
|
+
*/
|
|
102
|
+
rollbackArtwork(artworkId: number): Promise<void>;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* ShowMasterpiece模块 - 作品图片迁移运行脚本
|
|
107
|
+
*
|
|
108
|
+
* 将Base64图片数据迁移到通用文件服务系统的逻辑封装。
|
|
109
|
+
*/
|
|
110
|
+
|
|
111
|
+
interface ParsedMigrationArgs {
|
|
112
|
+
config: MigrationConfig;
|
|
113
|
+
showHelp: boolean;
|
|
114
|
+
}
|
|
115
|
+
declare function parseMigrationArguments(args: string[]): ParsedMigrationArgs;
|
|
116
|
+
declare function getMigrationHelpText(): string;
|
|
117
|
+
declare function validateMigrationPrerequisites(config: MigrationConfig): void;
|
|
118
|
+
declare function runArtworkMigration(db: any, config: MigrationConfig): Promise<MigrationStats>;
|
|
119
|
+
|
|
120
|
+
export { ArtworkMigrator, type MigrationConfig, type MigrationStats, type ParsedMigrationArgs, getMigrationHelpText, parseMigrationArguments, runArtworkMigration, validateMigrationPrerequisites };
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ShowMasterpiece模块 - 作品图片迁移工具
|
|
3
|
+
*
|
|
4
|
+
* 将现有的Base64图片数据迁移到通用文件服务系统
|
|
5
|
+
*
|
|
6
|
+
* 主要功能:
|
|
7
|
+
* - Base64图片解析和验证
|
|
8
|
+
* - 上传到通用文件服务
|
|
9
|
+
* - 更新数据库引用
|
|
10
|
+
* - 迁移状态跟踪
|
|
11
|
+
* - 回滚机制
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* 迁移配置接口
|
|
15
|
+
*/
|
|
16
|
+
interface MigrationConfig {
|
|
17
|
+
/** 批处理大小 */
|
|
18
|
+
batchSize: number;
|
|
19
|
+
/** 是否试运行 */
|
|
20
|
+
dryRun: boolean;
|
|
21
|
+
/** 是否验证文件完整性 */
|
|
22
|
+
validateFiles: boolean;
|
|
23
|
+
/** 是否备份原数据 */
|
|
24
|
+
backupOldData: boolean;
|
|
25
|
+
/** 是否强制覆盖已存在的文件 */
|
|
26
|
+
forceOverwrite: boolean;
|
|
27
|
+
/** 是否上传到OSS */
|
|
28
|
+
enableOSSUpload: boolean;
|
|
29
|
+
/** 指定画集ID(空表示全部) */
|
|
30
|
+
collectionIds?: number[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 迁移统计信息
|
|
34
|
+
*/
|
|
35
|
+
interface MigrationStats {
|
|
36
|
+
totalArtworks: number;
|
|
37
|
+
processedCount: number;
|
|
38
|
+
successCount: number;
|
|
39
|
+
failedCount: number;
|
|
40
|
+
skippedCount: number;
|
|
41
|
+
totalFileSize: number;
|
|
42
|
+
processedFileSize: number;
|
|
43
|
+
errors: Array<{
|
|
44
|
+
artworkId: number;
|
|
45
|
+
error: string;
|
|
46
|
+
timestamp: Date;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 作品迁移器类
|
|
51
|
+
*/
|
|
52
|
+
declare class ArtworkMigrator {
|
|
53
|
+
private readonly db;
|
|
54
|
+
private config;
|
|
55
|
+
private stats;
|
|
56
|
+
private folderCache;
|
|
57
|
+
private storageProviderCache;
|
|
58
|
+
constructor(db: any, config: MigrationConfig);
|
|
59
|
+
/**
|
|
60
|
+
* 开始迁移
|
|
61
|
+
*/
|
|
62
|
+
migrate(): Promise<MigrationStats>;
|
|
63
|
+
/**
|
|
64
|
+
* 分析现有数据
|
|
65
|
+
*/
|
|
66
|
+
private analyzeData;
|
|
67
|
+
/**
|
|
68
|
+
* 准备迁移环境
|
|
69
|
+
*/
|
|
70
|
+
private prepareMigrationEnvironment;
|
|
71
|
+
/**
|
|
72
|
+
* 确保存储提供者存在
|
|
73
|
+
*/
|
|
74
|
+
private ensureStorageProvider;
|
|
75
|
+
/**
|
|
76
|
+
* 确保模块文件夹存在
|
|
77
|
+
*/
|
|
78
|
+
private ensureModuleFolders;
|
|
79
|
+
/**
|
|
80
|
+
* 备份原始数据
|
|
81
|
+
*/
|
|
82
|
+
private backupOriginalData;
|
|
83
|
+
/**
|
|
84
|
+
* 执行批量迁移
|
|
85
|
+
*/
|
|
86
|
+
private performBatchMigration;
|
|
87
|
+
/**
|
|
88
|
+
* 迁移单个作品
|
|
89
|
+
*/
|
|
90
|
+
private migrateArtwork;
|
|
91
|
+
/**
|
|
92
|
+
* 解析Base64图片
|
|
93
|
+
*/
|
|
94
|
+
private parseBase64Image;
|
|
95
|
+
/**
|
|
96
|
+
* 生成迁移报告
|
|
97
|
+
*/
|
|
98
|
+
private generateReport;
|
|
99
|
+
/**
|
|
100
|
+
* 回滚单个作品
|
|
101
|
+
*/
|
|
102
|
+
rollbackArtwork(artworkId: number): Promise<void>;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* ShowMasterpiece模块 - 作品图片迁移运行脚本
|
|
107
|
+
*
|
|
108
|
+
* 将Base64图片数据迁移到通用文件服务系统的逻辑封装。
|
|
109
|
+
*/
|
|
110
|
+
|
|
111
|
+
interface ParsedMigrationArgs {
|
|
112
|
+
config: MigrationConfig;
|
|
113
|
+
showHelp: boolean;
|
|
114
|
+
}
|
|
115
|
+
declare function parseMigrationArguments(args: string[]): ParsedMigrationArgs;
|
|
116
|
+
declare function getMigrationHelpText(): string;
|
|
117
|
+
declare function validateMigrationPrerequisites(config: MigrationConfig): void;
|
|
118
|
+
declare function runArtworkMigration(db: any, config: MigrationConfig): Promise<MigrationStats>;
|
|
119
|
+
|
|
120
|
+
export { ArtworkMigrator, type MigrationConfig, type MigrationStats, type ParsedMigrationArgs, getMigrationHelpText, parseMigrationArguments, runArtworkMigration, validateMigrationPrerequisites };
|