getFileData method

  1. @override
Future<FileModel?> getFileData(
  1. String fileId, {
  2. String? bucketId,
})
override

Implementation

@override
Future<FileModel?> getFileData(String fileId, {String? bucketId}) async {
  try {
    await initialize();

    bucketId ??= myConfig!.serverConfig.storageConnInfo.bucketId;
    var file = await _storage!.getFile(bucketId: bucketId, fileId: fileId);
    String fileUrl = url.replaceFirst("BUCKET_ID", bucketId).replaceFirst("FILE_ID", fileId);

    try {
      var thumbnail = await _storage!.getFile(bucketId: bucketId, fileId: "cov-${file.$id.substring(4)}");
      return FileModel(
        id: file.$id,
        name: file.name,
        url: fileUrl,
        thumbnailUrl: url.replaceFirst("BUCKET_ID", thumbnail.bucketId).replaceFirst("FILE_ID", thumbnail.$id),
        size: file.sizeOriginal,
        contentType: ContentsType.getContentTypes(file.mimeType)
      );
    } catch (error) {
      // fail get file thumbnail
      return FileModel(
        id: file.$id,
        name: file.name,
        url: fileUrl,
        thumbnailUrl: file.mimeType.contains("image") ? fileUrl : "",
        size: file.sizeOriginal,
        contentType: ContentsType.getContentTypes(file.mimeType)
      );
    }
  } catch (error) {
    logger.info("error at Storage.getFileData >>> $error");
  }
  return null;
}