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;
}