save method
Future<StorageFile>
save(
- String folderPath,
- File data, {
- String? filename,
- String mimeType = mimeTypeApplicationOctetStream,
- Map<
String, String> metadata = const <String, String>{}, - Map<
String, dynamic> additionalData = const <String, dynamic>{},
override
Implementation
@override
Future<StorageFile> save(
String folderPath,
File 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.putData(data.readAsBytesSync(), 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,
);
}