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 async Task SpaceUploadFileAsync(string localFilePath, string serverFolder, string destFileName, CancellationToken cancellationToken, bool overwriteExistingFile = false) { if (!File.Exists(localFilePath)) { throw new FileNotFoundException(string.Format("File '{0}' not found", localFilePath)); } var fileSize = new FileInfo(localFilePath).Length; using (var fsSource = new FileStream(localFilePath, FileMode.Open, FileAccess.Read)) { var request = new SpaceUploadDataStreamRequest { DataStream = fsSource, FileName = destFileName, FileSize = fileSize, OverwriteExistingFile = overwriteExistingFile, ServerFolder = serverFolder }; await _morphServerApiClient.SpaceUploadDataStreamAsync(_apiSession, request, cancellationToken); return; } }