uploadFile method
      
  
Future<FileModel?> 
uploadFile(
    
    
- String fileName,
- String fileType,
- Uint8List fileBytes, {
- bool makeThumbnail = false,
- String usageType = "content",
- String? bucketId,
override
    Implementation
@override
Future<FileModel?> uploadFile(String fileName, String fileType, Uint8List fileBytes,
    {bool makeThumbnail = false, String usageType = "content", String? bucketId}) async {
  try {
    await initialize();
    bucketId ??= myConfig!.serverConfig.storageConnInfo.bucketId;
    fileName = StorageUtils.sanitizeString(StorageUtils.getMD5(fileBytes) + fileName);
    late String folderPath;
    if (usageType == "content") {
      if (fileType.contains("image")) {
        folderPath = "content/image/";
      } else if (fileType.contains("video")) {
        folderPath = "content/video/";
        makeThumbnail = true;
      } else {
        folderPath = "content/etc/";
        if (fileType.contains("pdf")) makeThumbnail = true;
      }
    } else if (usageType == "bookThumbnail") {
      folderPath = "book/thumbnail/";
    } else if (usageType == "profile") {
      folderPath = "profile/";
    } else if (usageType == "banner") {
      folderPath = "banner/";
    } else {
      folderPath = "etc/";
    }
    var file = _storage!.ref().child("$bucketId/$folderPath$fileName");
    var alreadyFile = await getFileData(file.fullPath);
    if(alreadyFile == null) {
      await file.putData(fileBytes);
      await file.updateMetadata(SettableMetadata(contentType: fileType));
      if (makeThumbnail) await createThumbnail(folderPath, fileName, fileType, bucketId);
      return await getFileData(file.fullPath);
    }
    return alreadyFile;
  } catch (error) {
    logger.severe("error at Storage.uploadFile >>> $error");
  }
  return null;
}