diff --git a/lib/core/utils/upload_oss.dart b/lib/core/utils/upload_oss.dart index a2fb54bbf..b2f825090 100644 --- a/lib/core/utils/upload_oss.dart +++ b/lib/core/utils/upload_oss.dart @@ -3,25 +3,45 @@ import 'dart:math'; import 'package:common_utils/common_utils.dart'; import 'package:dio/dio.dart'; +import 'package:get_storage/get_storage.dart'; import 'package:tencentcloud_cos_sdk_plugin/cos.dart'; import 'package:tencentcloud_cos_sdk_plugin/cos_transfer_manger.dart'; import 'package:tencentcloud_cos_sdk_plugin/pigeon.dart'; +import '../../data/models/appconfig.dart'; + class UploadOss { static final UploadOss _shared = UploadOss._internal(); factory UploadOss() => _shared; - static const bucket = 'deepsound-1253517901'; - static const region = 'ap-guangzhou'; + static String bucket = ''; + static String region = ''; + static String secretId = ''; + static String secretKey = ''; + static String userId = ''; static CosTransferManger? _cosTransferManger; UploadOss._internal(); + static initOss() { + bucket = AppConfig.env('COS_BUCKET_NAME') ?? ''; + region = AppConfig.env('COS_REGION') ?? ''; + secretId = AppConfig.env('COS_SECRET_ID') ?? ''; + secretKey = AppConfig.env('COS_SECRET_KEY') ?? ''; + + final GetStorage storage = GetStorage(); + Map? userInfo = storage.read("user_info"); + if (userInfo != null) { + userId = userInfo['user']['uid']; + } else { + userId = ''; + } + } + static Future getTransferManger() async { if (_cosTransferManger == null) { - await Cos().initWithPlainSecret('AKID9F8qNiqlTzIMFwQ9rQxNcgYCdsukNmzA', - 'OYVGo8HEzWpvpfHgtfHfqpcDbnlY7Tdc'); + await Cos().initWithPlainSecret(secretId, secretKey); if (Cos().hasTransferManger(region)) { _cosTransferManger = Cos().getTransferManger(region); } else { @@ -43,8 +63,16 @@ class UploadOss { Function? callback, ProgressCallback? onSendProgress, }) async { - String pathName = - '$rootDir/${getDate()}/${getRandom(12)}.${fileType ?? getFileType(filepath!)}'; + if (bucket.isEmpty || + region.isEmpty || + secretId.isEmpty || + secretKey.isEmpty || + userId.isEmpty) { + initOss(); + } + String pathName = userId.isNotEmpty + ? 'User/$userId/$rootDir/${getDate()}/${getRandom(12)}.${fileType ?? getFileType(filepath!)}' + : 'User/$rootDir/${getDate()}/${getRandom(12)}.${fileType ?? getFileType(filepath!)}'; CosTransferManger cosTransferManger = await getTransferManger(); final completer = Completer(); await cosTransferManger.upload(