public Task SpaceUploadDataStreamAsync(ApiSession apiSession, SpaceUploadDataStreamRequest spaceUploadFileRequest, CancellationToken cancellationToken) { if (apiSession == null) { throw new ArgumentNullException(nameof(apiSession)); } if (spaceUploadFileRequest == null) { throw new ArgumentNullException(nameof(spaceUploadFileRequest)); } return(Wrapped(async(token) => { Action <FileTransferProgressEventArgs> onSendProgress = (data) => { OnDataUploadProgress?.Invoke(this, data); }; var sendStreamData = new SendFileStreamData( spaceUploadFileRequest.DataStream, spaceUploadFileRequest.FileName, spaceUploadFileRequest.FileSize); var apiResult = spaceUploadFileRequest.OverwriteExistingFile ? await _lowLevelApiClient.WebFilesPutFileStreamAsync(apiSession, spaceUploadFileRequest.ServerFolder, sendStreamData, onSendProgress, token) : await _lowLevelApiClient.WebFilesPostFileStreamAsync(apiSession, spaceUploadFileRequest.ServerFolder, sendStreamData, onSendProgress, token); FailIfError(apiResult); return Task.FromResult(0); }, cancellationToken, OperationType.FileTransfer)); }
public Task <ApiResult <NoContentResult> > WebFilesPostFileStreamAsync(ApiSession apiSession, string serverFolder, SendFileStreamData sendFileStreamData, Action <FileTransferProgressEventArgs> onSendProgress, CancellationToken cancellationToken) { if (apiSession == null) { throw new ArgumentNullException(nameof(apiSession)); } if (sendFileStreamData == null) { throw new ArgumentNullException(nameof(sendFileStreamData)); } var spaceName = apiSession.SpaceName; var url = UrlHelper.JoinUrl("space", spaceName, "files", serverFolder); return(apiClient.PostFileStreamAsync <NoContentResult>(url, sendFileStreamData, null, apiSession.ToHeadersCollection(), onSendProgress, cancellationToken)); }