upload method
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;
}