getFileData method
Implementation
@override
Future<FileModel?> getFileData(String fileId, {String? bucketId}) async {
try {
await initialize();
var file = _storage!.ref().child(fileId);
FullMetadata fileMetadata = await file.getMetadata();
String fileUrl = await file.getDownloadURL();
String thumbnailId =
"${file.fullPath.substring(0, file.fullPath.indexOf("/"))}/content/thumbnail/${file.name.substring(0, file.name.lastIndexOf("."))}.jpg";
var thumbnail = _storage!.ref().child(thumbnailId);
var thumbnailUrl = await thumbnail.getDownloadURL().onError((error, stackTrace) =>
fileMetadata.contentType != null && fileMetadata.contentType!.contains("image")
? fileUrl
: "");
return FileModel(
id: file.fullPath,
name: file.name.length > 36 ? file.name.substring(32) : file.name,
url: fileUrl,
thumbnailUrl: thumbnailUrl,
size: fileMetadata.size ?? 0,
contentType: ContentsType.getContentTypes(fileMetadata.contentType ?? ""));
} catch (error) {
logger.info("error at Storage.getFileData >>> $error");
}
return null;
}