|
|
@ -3,25 +3,45 @@ import 'dart:math'; |
|
|
|
|
|
|
|
|
import 'package:common_utils/common_utils.dart'; |
|
|
import 'package:common_utils/common_utils.dart'; |
|
|
import 'package:dio/dio.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.dart'; |
|
|
import 'package:tencentcloud_cos_sdk_plugin/cos_transfer_manger.dart'; |
|
|
import 'package:tencentcloud_cos_sdk_plugin/cos_transfer_manger.dart'; |
|
|
import 'package:tencentcloud_cos_sdk_plugin/pigeon.dart'; |
|
|
import 'package:tencentcloud_cos_sdk_plugin/pigeon.dart'; |
|
|
|
|
|
|
|
|
|
|
|
import '../../data/models/appconfig.dart'; |
|
|
|
|
|
|
|
|
class UploadOss { |
|
|
class UploadOss { |
|
|
static final UploadOss _shared = UploadOss._internal(); |
|
|
static final UploadOss _shared = UploadOss._internal(); |
|
|
factory UploadOss() => _shared; |
|
|
factory UploadOss() => _shared; |
|
|
|
|
|
|
|
|
static const bucket = 'deepsound-1253517901'; |
|
|
static String bucket = ''; |
|
|
static const region = 'ap-guangzhou'; |
|
|
static String region = ''; |
|
|
|
|
|
static String secretId = ''; |
|
|
|
|
|
static String secretKey = ''; |
|
|
|
|
|
static String userId = ''; |
|
|
|
|
|
|
|
|
static CosTransferManger? _cosTransferManger; |
|
|
static CosTransferManger? _cosTransferManger; |
|
|
|
|
|
|
|
|
UploadOss._internal(); |
|
|
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<CosTransferManger> getTransferManger() async { |
|
|
static Future<CosTransferManger> getTransferManger() async { |
|
|
if (_cosTransferManger == null) { |
|
|
if (_cosTransferManger == null) { |
|
|
await Cos().initWithPlainSecret('AKID9F8qNiqlTzIMFwQ9rQxNcgYCdsukNmzA', |
|
|
await Cos().initWithPlainSecret(secretId, secretKey); |
|
|
'OYVGo8HEzWpvpfHgtfHfqpcDbnlY7Tdc'); |
|
|
|
|
|
if (Cos().hasTransferManger(region)) { |
|
|
if (Cos().hasTransferManger(region)) { |
|
|
_cosTransferManger = Cos().getTransferManger(region); |
|
|
_cosTransferManger = Cos().getTransferManger(region); |
|
|
} else { |
|
|
} else { |
|
|
@ -43,8 +63,16 @@ class UploadOss { |
|
|
Function? callback, |
|
|
Function? callback, |
|
|
ProgressCallback? onSendProgress, |
|
|
ProgressCallback? onSendProgress, |
|
|
}) async { |
|
|
}) async { |
|
|
String pathName = |
|
|
if (bucket.isEmpty || |
|
|
'$rootDir/${getDate()}/${getRandom(12)}.${fileType ?? getFileType(filepath!)}'; |
|
|
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(); |
|
|
CosTransferManger cosTransferManger = await getTransferManger(); |
|
|
final completer = Completer<String>(); |
|
|
final completer = Completer<String>(); |
|
|
await cosTransferManger.upload( |
|
|
await cosTransferManger.upload( |
|
|
|