@@ -39,8 +39,12 @@ type SliceUploadSession struct {
39
39
40
40
// NewSliceUploadManager 创建分片上传管理器
41
41
func NewSliceUploadManager () * SliceUploadManager {
42
+ tempDir := os .TempDir () // 默认使用系统临时目录
43
+ if conf .Conf != nil && conf .Conf .TempDir != "" {
44
+ tempDir = conf .Conf .TempDir
45
+ }
42
46
return & SliceUploadManager {
43
- tempDir : conf . Conf . TempDir ,
47
+ tempDir : tempDir ,
44
48
}
45
49
}
46
50
@@ -421,7 +425,11 @@ func (s *SliceUploadSession) ensureTmpFile() error {
421
425
defer s .mutex .Unlock ()
422
426
423
427
if s .TmpFile == "" {
424
- tf , err := os .CreateTemp (conf .Conf .TempDir , "file-*" )
428
+ tempDir := os .TempDir () // 默认使用系统临时目录
429
+ if conf .Conf != nil && conf .Conf .TempDir != "" {
430
+ tempDir = conf .Conf .TempDir
431
+ }
432
+ tf , err := os .CreateTemp (tempDir , "file-*" )
425
433
if err != nil {
426
434
return fmt .Errorf ("CreateTemp error: %w" , err )
427
435
}
@@ -468,8 +476,17 @@ func (s *SliceUploadSession) cleanup() {
468
476
}
469
477
}
470
478
471
- // 全局管理器实例
472
- var globalSliceManager = NewSliceUploadManager ()
479
+ // 全局管理器实例使用延迟初始化
480
+ var globalSliceManager * SliceUploadManager
481
+ var globalSliceManagerOnce sync.Once
482
+
483
+ // getGlobalSliceManager 获取全局分片上传管理器(延迟初始化)
484
+ func getGlobalSliceManager () * SliceUploadManager {
485
+ globalSliceManagerOnce .Do (func () {
486
+ globalSliceManager = NewSliceUploadManager ()
487
+ })
488
+ return globalSliceManager
489
+ }
473
490
474
491
// sliceWriter 分片写入器 - 保持原始实现
475
492
type sliceWriter struct {
0 commit comments