Exemple #1
0
        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);
        }
Exemple #2
0
        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);
     }
 }
Exemple #4
0
        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());
        }