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(fileName);
    late String fileId;
    if(fileType.contains("image")) {
      fileId = "img-";
    } else if (fileType.contains("video")) {
      fileId = "vid-";
      makeThumbnail = true;
    } else {
      fileId = "etc-";
      if(fileType.contains("pdf")) makeThumbnail = true;
    }
    fileId += StorageUtils.getMD5(fileBytes);
    var file = await getFileData(fileId, bucketId: bucketId);
    if(file != null) {
      if((file.thumbnailUrl.isEmpty || file.thumbnailUrl == file.url) && makeThumbnail) {
        await createThumbnail(fileId, fileName, fileType, bucketId);
      } else {
        return file;
      }
    } else {
      await _storage!.createFile(bucketId: bucketId, fileId: fileId, file: InputFile.fromBytes(bytes: fileBytes, filename: fileName));
      if(makeThumbnail) await createThumbnail(fileId, fileName, fileType, bucketId);
    }
    return await getFileData(fileId, bucketId: bucketId);
  } catch (error) {
    logger.severe("error at Storage.uploadFile >>> $error");
  }
  return null;
}