saveBlob method

  1. @override
Future<StorageFile> saveBlob(
  1. String folderPath,
  2. dynamic data, {
  3. String? filename,
  4. String mimeType = mimeTypeApplicationOctetStream,
  5. Map<String, String> metadata = const <String, String>{},
  6. Map<String, dynamic> additionalData = const <String, dynamic>{},
})
override

Implementation

@override
Future<StorageFile> saveBlob(
  String folderPath,
  dynamic data, {
  String? filename,
  String mimeType = mimeTypeApplicationOctetStream,
  Map<String, String> metadata = const <String, String>{},
  Map<String, dynamic> additionalData = const <String, dynamic>{},
}) async {
  final refFilename = filename ?? Storage.fileName();
  final path = '$folderPath/$refFilename';
  final ref = storage.ref().child(path);
  final settableMetadata =
      SettableMetadata(contentType: mimeType, customMetadata: metadata);
  final uploadTask = ref.putBlob(data, settableMetadata);
  if (_uploader != null) {
    uploadTask.snapshotEvents.listen(_uploader!.add);
  }
  final snapshot = await uploadTask.whenComplete(() => null);
  final downloadUrl = await snapshot.ref.getDownloadURL();
  return StorageFile(
    name: refFilename,
    url: downloadUrl,
    path: path,
    mimeType: mimeType,
    metadata: metadata,
    additionalData: additionalData,
  );
}