sa2kit 1.6.24 → 1.6.26
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-KOVWJQLL.js +15 -0
- package/dist/{AliyunOSSProvider-XCTK3QQA.js.map → AliyunOSSProvider-KOVWJQLL.js.map} +1 -1
- package/dist/AliyunOSSProvider-YKT256D6.mjs +6 -0
- package/dist/{AliyunOSSProvider-2UZRIGT3.mjs.map → AliyunOSSProvider-YKT256D6.mjs.map} +1 -1
- package/dist/{UniversalFileService-CGGzYeeF.d.mts → UniversalFileService-ChicEKg7.d.mts} +12 -0
- package/dist/{UniversalFileService-BuHN-jrR.d.ts → UniversalFileService-Ct4baUMz.d.ts} +12 -0
- package/dist/{chunk-EXT3IKQA.js → chunk-BLQRF7C7.js} +60 -12
- package/dist/chunk-BLQRF7C7.js.map +1 -0
- package/dist/{chunk-OHUE7EL6.mjs → chunk-SWWRT5FN.mjs} +60 -12
- package/dist/chunk-SWWRT5FN.mjs.map +1 -0
- package/dist/mmd/server/index.d.mts +1 -1
- package/dist/mmd/server/index.d.ts +1 -1
- package/dist/universalFile/index.d.mts +1 -1
- package/dist/universalFile/index.d.ts +1 -1
- package/dist/universalFile/server/index.d.mts +2 -2
- package/dist/universalFile/server/index.d.ts +2 -2
- package/dist/universalFile/server/index.js +84 -8
- package/dist/universalFile/server/index.js.map +1 -1
- package/dist/universalFile/server/index.mjs +83 -7
- package/dist/universalFile/server/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/AliyunOSSProvider-2UZRIGT3.mjs +0 -6
- package/dist/AliyunOSSProvider-XCTK3QQA.js +0 -15
- package/dist/chunk-EXT3IKQA.js.map +0 -1
- package/dist/chunk-OHUE7EL6.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { LocalStorageProvider } from '../../chunk-GSTLV3MB.mjs';
|
|
2
|
-
export { AliyunOSSProvider } from '../../chunk-
|
|
2
|
+
export { AliyunOSSProvider } from '../../chunk-SWWRT5FN.mjs';
|
|
3
3
|
import { CDNProviderError } from '../../chunk-ZGVB35L2.mjs';
|
|
4
4
|
import { createLogger } from '../../chunk-KQGP6BTS.mjs';
|
|
5
5
|
import { StorageProviderError, FileUploadError, FileProcessingError } from '../../chunk-CIVO4R6N.mjs';
|
|
@@ -2980,6 +2980,7 @@ var UniversalFileService = class extends EventEmitter {
|
|
|
2980
2980
|
async initialize() {
|
|
2981
2981
|
logger6.info("\u{1F680} [UniversalFileService] \u5F00\u59CB\u521D\u59CB\u5316\u6587\u4EF6\u670D\u52A1...");
|
|
2982
2982
|
try {
|
|
2983
|
+
await this.validateConfiguration();
|
|
2983
2984
|
await this.initializeStorageProviders();
|
|
2984
2985
|
await this.initializeCDNProviders();
|
|
2985
2986
|
await this.initializeFileProcessors();
|
|
@@ -2995,9 +2996,21 @@ var UniversalFileService = class extends EventEmitter {
|
|
|
2995
2996
|
async reinitializeStorageProviders() {
|
|
2996
2997
|
logger6.info("\u{1F504} [UniversalFileService] \u91CD\u65B0\u521D\u59CB\u5316\u5B58\u50A8\u63D0\u4F9B\u8005...");
|
|
2997
2998
|
try {
|
|
2998
|
-
const
|
|
2999
|
-
|
|
3000
|
-
|
|
2999
|
+
for (const [type, provider] of this.storageProviders) {
|
|
3000
|
+
if ("reinitialize" in provider) {
|
|
3001
|
+
try {
|
|
3002
|
+
logger6.info(`\u{1F504} [UniversalFileService] \u91CD\u65B0\u521D\u59CB\u5316\u5B58\u50A8\u63D0\u4F9B\u8005: ${type}...`);
|
|
3003
|
+
const config = this.config.storageProviders?.[type];
|
|
3004
|
+
if (config) {
|
|
3005
|
+
await provider.reinitialize(config);
|
|
3006
|
+
logger6.info(`\u2705 [UniversalFileService] \u5B58\u50A8\u63D0\u4F9B\u8005\u91CD\u65B0\u521D\u59CB\u5316\u5B8C\u6210: ${type}`);
|
|
3007
|
+
} else {
|
|
3008
|
+
logger6.warn(`\u26A0\uFE0F [UniversalFileService] \u5B58\u50A8\u63D0\u4F9B\u8005\u914D\u7F6E\u4E0D\u5B58\u5728: ${type}`);
|
|
3009
|
+
}
|
|
3010
|
+
} catch (error) {
|
|
3011
|
+
logger6.error(`\u274C [UniversalFileService] \u5B58\u50A8\u63D0\u4F9B\u8005\u91CD\u65B0\u521D\u59CB\u5316\u5931\u8D25: ${type}`, error);
|
|
3012
|
+
}
|
|
3013
|
+
}
|
|
3001
3014
|
}
|
|
3002
3015
|
logger6.info("\u2705 [UniversalFileService] \u5B58\u50A8\u63D0\u4F9B\u8005\u91CD\u65B0\u521D\u59CB\u5316\u5B8C\u6210");
|
|
3003
3016
|
} catch (error) {
|
|
@@ -3314,6 +3327,42 @@ var UniversalFileService = class extends EventEmitter {
|
|
|
3314
3327
|
this.off(eventType, listener);
|
|
3315
3328
|
}
|
|
3316
3329
|
// ============= 私有方法 =============
|
|
3330
|
+
/**
|
|
3331
|
+
* 验证配置是否完整
|
|
3332
|
+
*/
|
|
3333
|
+
async validateConfiguration() {
|
|
3334
|
+
logger6.info("\u{1F50D} [UniversalFileService] \u9A8C\u8BC1\u914D\u7F6E\u6587\u4EF6...");
|
|
3335
|
+
if (!this.config) {
|
|
3336
|
+
throw new Error("\u6587\u4EF6\u670D\u52A1\u914D\u7F6E\u4E3A\u7A7A");
|
|
3337
|
+
}
|
|
3338
|
+
if (!this.config.storage) {
|
|
3339
|
+
throw new Error("\u5B58\u50A8\u914D\u7F6E\u4E3A\u7A7A");
|
|
3340
|
+
}
|
|
3341
|
+
if (this.config.storage.type === "aliyun-oss") {
|
|
3342
|
+
const ossConfig = this.config.storage;
|
|
3343
|
+
if (!ossConfig.accessKeyId || !ossConfig.accessKeySecret || !ossConfig.bucket || !ossConfig.region) {
|
|
3344
|
+
logger6.warn("\u26A0\uFE0F [UniversalFileService] OSS\u914D\u7F6E\u4E0D\u5B8C\u6574\uFF0C\u7B49\u5F85\u914D\u7F6E\u52A0\u8F7D...");
|
|
3345
|
+
const maxRetries = 30;
|
|
3346
|
+
const retryInterval = 1e3;
|
|
3347
|
+
for (let i = 0; i < maxRetries; i++) {
|
|
3348
|
+
await new Promise((resolve) => setTimeout(resolve, retryInterval));
|
|
3349
|
+
const updatedConfig = this.config.storage;
|
|
3350
|
+
if (updatedConfig.accessKeyId && updatedConfig.accessKeySecret && updatedConfig.bucket && updatedConfig.region) {
|
|
3351
|
+
logger6.info("\u2705 [UniversalFileService] OSS\u914D\u7F6E\u52A0\u8F7D\u5B8C\u6210");
|
|
3352
|
+
break;
|
|
3353
|
+
}
|
|
3354
|
+
if (i === maxRetries - 1) {
|
|
3355
|
+
throw new Error("OSS\u914D\u7F6E\u52A0\u8F7D\u8D85\u65F6\uFF1A\u7F3A\u5C11\u5FC5\u9700\u7684\u914D\u7F6E\u9879 (accessKeyId, accessKeySecret, bucket, region)");
|
|
3356
|
+
}
|
|
3357
|
+
logger6.debug(`\u7B49\u5F85OSS\u914D\u7F6E\u52A0\u8F7D\u4E2D... (${i + 1}/${maxRetries})`);
|
|
3358
|
+
}
|
|
3359
|
+
}
|
|
3360
|
+
}
|
|
3361
|
+
if (!this.config.defaultStorage) {
|
|
3362
|
+
this.config.defaultStorage = this.config.storage.type;
|
|
3363
|
+
}
|
|
3364
|
+
logger6.info("\u2705 [UniversalFileService] \u914D\u7F6E\u9A8C\u8BC1\u5B8C\u6210");
|
|
3365
|
+
}
|
|
3317
3366
|
async initializeStorageProviders() {
|
|
3318
3367
|
logger6.info("\u{1F4E6} [UniversalFileService] \u5F00\u59CB\u521D\u59CB\u5316\u5B58\u50A8\u63D0\u4F9B\u8005...");
|
|
3319
3368
|
if (this.storageProviders.size === 0) {
|
|
@@ -3342,7 +3391,7 @@ var UniversalFileService = class extends EventEmitter {
|
|
|
3342
3391
|
try {
|
|
3343
3392
|
if (this.config.storage) {
|
|
3344
3393
|
if (this.config.storage.type === "aliyun-oss" && this.config.storage.enabled) {
|
|
3345
|
-
const { AliyunOSSProvider: AliyunOSSProvider2 } = await import('../../AliyunOSSProvider-
|
|
3394
|
+
const { AliyunOSSProvider: AliyunOSSProvider2 } = await import('../../AliyunOSSProvider-YKT256D6.mjs');
|
|
3346
3395
|
const ossProvider = new AliyunOSSProvider2();
|
|
3347
3396
|
this.registerStorageProvider(ossProvider);
|
|
3348
3397
|
logger6.info("\u2705 [UniversalFileService] \u963F\u91CC\u4E91OSS\u63D0\u4F9B\u8005\u6CE8\u518C\u6210\u529F");
|
|
@@ -3560,6 +3609,28 @@ var UniversalFileService = class extends EventEmitter {
|
|
|
3560
3609
|
throw new FileUploadError("\u65E0\u6743\u9650\u5220\u9664\u6B64\u6587\u4EF6");
|
|
3561
3610
|
}
|
|
3562
3611
|
}
|
|
3612
|
+
/**
|
|
3613
|
+
* 检查服务是否完全可用(包括存储提供者)
|
|
3614
|
+
*/
|
|
3615
|
+
isFullyInitialized() {
|
|
3616
|
+
const hasStorageProvider = Array.from(this.storageProviders.values()).some(
|
|
3617
|
+
(provider) => provider.type === "aliyun-oss" || provider.type === "local"
|
|
3618
|
+
);
|
|
3619
|
+
return hasStorageProvider;
|
|
3620
|
+
}
|
|
3621
|
+
/**
|
|
3622
|
+
* 等待服务完全初始化(带超时)
|
|
3623
|
+
*/
|
|
3624
|
+
async waitForInitialization(timeoutMs = 3e4) {
|
|
3625
|
+
const startTime = Date.now();
|
|
3626
|
+
while (!this.isFullyInitialized()) {
|
|
3627
|
+
if (Date.now() - startTime > timeoutMs) {
|
|
3628
|
+
throw new Error(`\u670D\u52A1\u521D\u59CB\u5316\u8D85\u65F6 (${timeoutMs}ms)`);
|
|
3629
|
+
}
|
|
3630
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
3631
|
+
}
|
|
3632
|
+
logger6.info("\u2705 [UniversalFileService] \u670D\u52A1\u5B8C\u5168\u521D\u59CB\u5316\u5C31\u7EEA");
|
|
3633
|
+
}
|
|
3563
3634
|
};
|
|
3564
3635
|
var logger7 = createLogger("CacheManager");
|
|
3565
3636
|
var CacheManager = class {
|
|
@@ -4980,8 +5051,13 @@ async function createFileServiceWithFactory(options = {}) {
|
|
|
4980
5051
|
}
|
|
4981
5052
|
const service = new UniversalFileService(finalConfig);
|
|
4982
5053
|
if (autoInitialize) {
|
|
4983
|
-
|
|
4984
|
-
|
|
5054
|
+
try {
|
|
5055
|
+
await service.initialize();
|
|
5056
|
+
logger10.info("\u2705 \u6587\u4EF6\u670D\u52A1\u521B\u5EFA\u5E76\u521D\u59CB\u5316\u5B8C\u6210");
|
|
5057
|
+
} catch (initError) {
|
|
5058
|
+
logger10.warn("\u26A0\uFE0F \u6587\u4EF6\u670D\u52A1\u521D\u59CB\u5316\u5931\u8D25\uFF0C\u5C06\u63D0\u4F9B\u5EF6\u8FDF\u521D\u59CB\u5316\u7684\u652F\u6301:", initError);
|
|
5059
|
+
logger10.info("\u{1F4A1} \u63D0\u793A\uFF1A\u53EF\u8C03\u7528 service.reinitializeStorageProviders() \u6765\u91CD\u65B0\u521D\u59CB\u5316\u5B58\u50A8\u63D0\u4F9B\u8005");
|
|
5060
|
+
}
|
|
4985
5061
|
} else {
|
|
4986
5062
|
logger10.info("\u2705 \u6587\u4EF6\u670D\u52A1\u521B\u5EFA\u5B8C\u6210");
|
|
4987
5063
|
}
|