upload method
Starts an upload of file with optional metadata and returns the
running FileUploadTask.
The file must exist. On success, id is set to the server-side ID.
Implementation
FileUploadTask upload(File file, [Map<String, String>? metadata]) {
assert(file.existsSync());
final FileUploadTask task = FileUploadTask._(this, file, metadata);
task._start();
return task;
}