moveFile method

  1. @override
Future<FileModel?> moveFile(
  1. String sourceBucketId,
  2. String sourceFileId, {
  3. String bucketId = "",
})
override

Implementation

@override
Future<FileModel?> moveFile(String sourceBucketId, String sourceFileId,
    {String bucketId = ""}) async {
  try {
    await initialize();

    var target = await getFileData("$sourceBucketId/$sourceFileId", bucketId: sourceBucketId);
    if (target != null) {
      var targetBytes = await getFileBytes("$sourceBucketId/$sourceFileId");
      if (targetBytes == null) throw Exception("file not exist");
      var moveFile = await uploadFile(target.name, target.contentType.name, targetBytes,
          bucketId: bucketId, usageType: getUsageType(target.id));
      if (target.thumbnailUrl.isNotEmpty && target.thumbnailUrl != target.url) {
        var targetThumbnailData = parseFileUrl(target.thumbnailUrl);
        await deleteFile("${targetThumbnailData["bucketId"]!}/${targetThumbnailData["fileId"]!}");
      }
      await deleteFile("$sourceBucketId/$sourceFileId");
      return moveFile;
    }
  } catch (error) {
    logger.severe("error during Storage.copyFile >> $error");
  }
  return null;
}