private FileUpload CreateFileUploadInternally(string actionId, FileUploadRequest request, Stream input, long fileSize = -1, IFileUploadCallback callback = null) { _client.Executor.CheckApiServerVersion(); #region Parameter Validation CheckUploadActionId(actionId); request.MustNotNull(nameof(request)); request.ParentId.MustPositive(nameof(request.ParentId)); request.Name.MustNotNullOrEmptyOrWhitespace(nameof(request.Name)); input.CheckStreamCanRead(nameof(input)); #endregion FileUpload upload; if (IsNodeEncrypted(request.ParentId)) { UserKeyPair keyPair = _client.AccountImpl.GetAndCheckUserKeyPair(); upload = new EncFileUpload(_client, actionId, request, input, keyPair.UserPublicKey, fileSize); } else { upload = new FileUpload(_client, actionId, request, input, fileSize); } _runningUploads.Add(actionId, upload); upload.AddFileUploadCallback(callback); upload.AddFileUploadCallback(this); return(upload); }
public void StartUploadFileAsync(string actionId, FileUploadRequest request, Stream input, long fileSize = -1, IFileUploadCallback callback = null) { FileUpload upload = CreateFileUploadInternally(actionId, request, input, fileSize, callback); upload.RunAsync(); }
public void AddFileUploadCallback(IFileUploadCallback callback) { if (callback != null) { Callbacks.Add(callback); } }
public Node UploadFile(string actionId, FileUploadRequest request, Stream input, long fileSize = -1, IFileUploadCallback callback = null) { FileUpload upload = CreateFileUploadInternally(actionId, request, input, fileSize, callback); return(upload.RunSync()); }