performUpload method
Implementation
Future<UploaderResponse<UploadResult>>? performUpload(UploadRequest request,
{required UploadResult Function(Map<String, dynamic> data) fromJson}) {
if (request.payload == null) {
throw ArgumentError('An upload request must have a payload');
}
var payload = request.payload!;
var chunkSize = cloudinary.config.apiConfig.chunkSize;
final uploadParams = request.params as UploadParams?;
if (payload.value is String && Utils.isRemoteUrl(payload.value) ||
(1 > payload.length || payload.length < chunkSize!)) {
// Ensure correct type for `fromJson` when calling `callApi`
return callApi(
request,
'upload',
options: uploadParams,
fromJson: fromJson,
);
}
var uniqueUploadId = Utils.createRandomUploadId(8);
_uploadLargeParts(payload, request, uniqueUploadId, fromJson: fromJson);
return null;
}