import 'package:file_picker/file_picker.dart'; import 'package:flutter_common/utils/file_utils.dart'; import 'package:food_hub_app/config/app_config.dart'; import 'package:minio/io.dart'; import 'package:minio/minio.dart'; class MinIOHelper { static final MinIOHelper _instance = MinIOHelper._internal(); factory MinIOHelper() => _instance; final String ip = AppConfig.rustfsIp; MinIOHelper._internal() { _minio = Minio( endPoint: AppConfig.rustfsIp, port: AppConfig.rustfsPort, accessKey: AppConfig.rustfsAccessKey, secretKey: AppConfig.rustfsSecretKey, useSSL: false, ); } late Minio _minio; Future uploadFile({ required PlatformFile file, required String bucketName, Function(double)? onProgress, }) async { try { String hashName = await generateMD5HashName(file.path!); String fileName = '$hashName${getFileExtension(file.name)}'; await _minio.fPutObject(bucketName, fileName, file.path!); return fileName; } catch (e) { throw Exception('文件上传失败: $e'); } } }