copyFile method

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

Implementation

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

    bucketId ??= myConfig!.serverConfig.storageConnInfo.bucketId;
    var sourceFile = _storage!.ref().child(sourceFileId);
    var sourceFileData = await getFileData(sourceFileId);
    var sourceFileMetaData = await sourceFile.getMetadata();
    Uint8List? sourceFileBytes = await getFileBytes(sourceFileId);
    if (sourceFileData!.thumbnailUrl.isNotEmpty &&
        sourceFileData.thumbnailUrl != sourceFileData.url) {
      return await uploadFile(
          sourceFile.name, sourceFileMetaData.contentType ?? "", sourceFileBytes!,
          makeThumbnail: true, bucketId: bucketId);
    }
    return await uploadFile(
        sourceFile.name, sourceFileMetaData.contentType ?? "", sourceFileBytes!,
        bucketId: bucketId);
  } catch (error) {
    logger.info("error at Storage.copyFile >>> $error");
  }
  return null;
}