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 = bucketId.isEmpty ? myConfig!.serverConfig!.storageConnInfo.bucketId : bucketId;
    var target = _storage!.ref().child(fileId);
    var targetMetaData = await target.getMetadata();
    var targetUrl = await target.getDownloadURL();

    var targetThumbnailUrl = await _storage!
        .ref()
        .child(
            "$bucketId/content/thumbnail/${fileId.substring(fileId.lastIndexOf("/") + 1, fileId.lastIndexOf("."))}.jpg")
        .getDownloadURL()
        .onError((error, stackTrace) async {
      return targetMetaData.contentType!.contains("image") ? targetUrl : "";
    });

    return FileModel(
        id: targetMetaData.fullPath,
        name: targetMetaData.name,
        url: targetUrl,
        thumbnailUrl: targetThumbnailUrl,
        size: targetMetaData.size ?? 0,
        contentType: targetMetaData.contentType == null
            ? ContentsType.none
            : ContentsType.getContentTypes(targetMetaData.contentType!));
  } catch (error) {
    logger.info("error during Storage.getFileData >> $error");
  }
  return null;
}