upload method

  1. @override
UploadTask upload({
  1. required MediaFile file,
  2. required String remotePath,
  3. Map<String, String>? metadata,
})
override

Starts an upload of file to remotePath on the backend.

metadata — optional key/value pairs stored alongside the file (e.g. {'userId': '123', 'contentType': 'image/jpeg'}).

Returns an UploadTask immediately; the upload starts asynchronously.

Implementation

@override
UploadTask upload({
  required MediaFile file,
  required String remotePath,
  Map<String, String>? metadata,
}) {
  final taskId = _uuid.v4();
  final controller = UploadTaskController(taskId: taskId);
  final task = UploadTask.fromController(controller);

  _startUpload(
    file: file,
    remotePath: remotePath,
    metadata: metadata,
    controller: controller,
  );

  return task;
}