kuiSaMDKaINCtrKN method

Future<void> kuiSaMDKaINCtrKN({
  1. required String filePath,
  2. required String dir,
  3. String? fileExt,
  4. dynamic onProgress(
    1. int count,
    2. int total
    )?,
  5. dynamic onFinish(
    1. bool isSuccess,
    2. String? url,
    3. String? error
    )?,
})

Implementation

Future<void> kuiSaMDKaINCtrKN({
  required String filePath,
  required String dir,
  String? fileExt,
  Function(int count, int total)? onProgress,
  Function(bool isSuccess, String? url, String? error)? onFinish,
}) async {
  if (!OEbgNMYgpTFcmXRN) {
    onFinish?.call(false, null, "can not upload file");
    return;
  }
  final kb = await XFile(filePath).length() / 1024.0;
  final sizeKB = kb < 1 ? 1 : kb.toInt();
  ikkMDRSazNrwMPHX.DaZbfaaNrPMLDyED.DMeWPljAqpqlapTz("prepareFileUpload", data: {
    "sizeKB": sizeKB,
  }, ack: (isSuccess, results, code, msg) async {
    if (!isSuccess) {
      onFinish?.call(false, null, msg);
      return;
    }
    void SsvlDqiyXjgPuKns(String path) {
      final url = zKmkhqBpkotdbHVl != null ? "${zKmkhqBpkotdbHVl}/$path" : "https://${OkNHrDREmQYVonvX}.${upLvzwsdkoamGhxn}/$path";
      ikkMDRSazNrwMPHX.DaZbfaaNrPMLDyED.DMeWPljAqpqlapTz("finishFileUpload", data: {
        "url": url,
      }, ack: (isSuccess, results, code, msg) async {
        if (!isSuccess) {
          onFinish?.call(false, null, msg);
          return;
        }
        onFinish?.call(true, url, null);
      });
    }

    Future<void> XFwzJeNIvWXNvbXv() async {
      try {
        final path = "client/${dir}/flutter_${Uuid().v4().replaceAll("-", "")}.${fileExt}";
        final response = await Client().putObject(
          await XFile(filePath).readAsBytes(),
          path,
          option: PutRequestOption(
            override: true,
            aclModel: AclMode.publicRead,
            storageType: StorageType.standard,
            onSendProgress: (count, total) {
              onProgress?.call(count, total);
            },
          ),
        );
        if (response.statusCode != HttpStatus.ok) {
          onFinish?.call(false, null, response.statusMessage ?? "HTTP ${response.statusCode ?? "Unknown"}");
          return null;
        }
        SsvlDqiyXjgPuKns(path);
      } catch (e) {
        onFinish?.call(false, null, e.toString());
      }
    }

    try {
      final path = "client/${dir}/flutter_${Uuid().v4().replaceAll("-", "")}.${filePath.split("/").last.split(".").last}";
      final response = await Client().putObjectFile(
        filePath,
        fileKey: path,
        option: PutRequestOption(
          override: true,
          aclModel: AclMode.publicRead,
          storageType: StorageType.standard,
          onSendProgress: (count, total) {
            onProgress?.call(count, total);
          },
        ),
      );
      if (response.statusCode != HttpStatus.ok) {
        onFinish?.call(false, null, response.statusMessage ?? "HTTP ${response.statusCode ?? "Unknown"}");
        return null;
      }
      SsvlDqiyXjgPuKns(path);
    } catch (e) {
      XFwzJeNIvWXNvbXv();
    }
  });
}