public void PartStreamTransferProgress(int partIndex, StreamTransferProgressArgs args)
        {
            if (args == null)
            {
                return;
            }

            long nTransferredBytes = 0;

            lock (_TransferredBytes)
            {
                _TransferredBytes[partIndex] = args.TransferredBytes;
                foreach (var item in _TransferredBytes)
                {
                    nTransferredBytes += item.Value;
                }
            }
            if (TotalBytes != 0)
            {
#if DEBUG
                if (ShowProgressOnConsole)
                {
                    if (this.TotalBytes > 0)
                    {
                        Console.WriteLine($"[{partIndex}] +{args.IncrementTransferred} --> {nTransferredBytes} / {this.TotalBytes}, {Math.Truncate((double)nTransferredBytes / (double)this.TotalBytes * 1000.0) / 1000.0:P1}");
                    }
                    else
                    {
                        Console.WriteLine($"[{partIndex}] +{args.IncrementTransferred} --> {nTransferredBytes}");
                    }
                }
#endif
                StreamTransferProgress?.Invoke(this, new StreamTransferProgressArgs(args.IncrementTransferred, nTransferredBytes, this.TotalBytes));
            }
        }
Example #2
0
        private static void OnTransferProgress(object sender, StreamTransferProgressArgs e)
        {
            if (began == DateTime.MinValue)
            {
                began = DateTime.Now;
            }

            if (e.TransferredBytes - lastProgressReport < 8 * 1024 * 1024)
            {
                return; // too soon to report again
            }
            string rate           = "<unknown>";
            int    secondsElapsed = (int)DateTime.Now.Subtract(began).TotalSeconds;

            if (secondsElapsed > 0)
            {
                rate = (((double)e.TransferredBytes / (double)(1024 * 1024)) / (double)secondsElapsed).ToString("0.##");
            }

            string remainingTimeString = "";

            if (e.PercentDone > 0)
            {
                long elapsedSeconds = (long)DateTime.Now.Subtract(began).TotalSeconds;
                long totalSeconds   = (long)((double)(elapsedSeconds) / (e.PercentDone / 100.0f));

                TimeSpan remainingTime = TimeSpan.FromSeconds(totalSeconds - elapsedSeconds);
                remainingTimeString = remainingTime.ToString();
            }

            Console.WriteLine("{0}: {1}% ({2} MB/s, {3} remaining)", DateTime.Now.ToString("HH:mm:ss"), e.PercentDone, rate, remainingTimeString);

            lastProgressReport = e.TransferredBytes;
        }
 private void DownloadProgressCallback(object sender, StreamTransferProgressArgs args)
 {
     Invoke(new Action(() =>
     {
         pgb_download.Value = (int)(args.TransferredBytes * 100 / args.TotalBytes);
     }));
 }
Example #4
0
        /// <summary>
        /// 进度条
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public void change(object sender, StreamTransferProgressArgs args)
        {
            int value = (int)(args.TransferredBytes * 100 / args.TotalBytes);

            ProcessValue = Math.Max(value - 1, 0);  //限制到99%
            //System.Console.WriteLine("ProgressCallback - Progress: {0}%, TotalBytes:{1}, TransferredBytes:{2} ",
            //    args.TransferredBytes * 100 / args.TotalBytes, args.TotalBytes, args.TransferredBytes);
        }
Example #5
0
 static void OnProgress(object sender, StreamTransferProgressArgs args)
 {
     if (args.PercentDone != currentPercentage)
     {
         currentPercentage = args.PercentDone;
         Form1.log.Info("Downloaded " + args.PercentDone + " % ");
     }
 }
Example #6
0
 static void OnProgress(object sender, StreamTransferProgressArgs args)
 {
     if (args.PercentDone != currentPercentage)
     {
         currentPercentage = args.PercentDone;
         Console.WriteLine("Downloaded {0}%", args.PercentDone);
     }
 }
Example #7
0
 static void Progress(object sender, StreamTransferProgressArgs args)
 {
     if (args.PercentDone != currentPercentage)
     {
         currentPercentage = args.PercentDone;
         Debug.WriteLine($"Downloaded {args.PercentDone}%");
     }
 }
Example #8
0
        void OnProgress(object sender, StreamTransferProgressArgs args)
        {
            String fileName = archiveRequest.Description;

            if (args.PercentDone != currentPercentage)
            {
                currentPercentage = args.PercentDone;
                Form1.log.Info("Downloaded " + fileName + " " + args.PercentDone + " % ");
            }
        }
Example #9
0
        void ProgressCallback(object sender, Runtime.StreamTransferProgressArgs args)
        {
            this.currentUploadProgressArgs = new StreamTransferProgressArgs(args.IncrementTransferred,
                                                                            this.currentUploadProgressArgs.TransferredBytes + args.IncrementTransferred,
                                                                            this.currentUploadProgressArgs.TotalBytes);

            if (this.options.StreamTransferProgress != null)
            {
                this.options.StreamTransferProgress(this.manager, this.currentUploadProgressArgs);
            }
        }
Example #10
0
        private static void streamProgressCallback(object sender, StreamTransferProgressArgs args)
        {
            //var progressItems = JsonHelper.SerializeObject(new
            //{
            //    TotalBytes = args.TotalBytes.ToString(),
            //    TransferredBytes = args.TransferredBytes.ToString(),
            //    TransferredAccounte = ((double)args.TransferredBytes / args.TotalBytes).ToString("f2")
            //});

            //CookieHelper.SetCookie("ProgressItems", progressItems);
            //CacheHelper.Set("ProgressItems", progressItems, 60 * 1);
        }
        void ProgressCallback(object sender, Runtime.StreamTransferProgressArgs args)
        {
            lock (currentUploadProgressArgsLock)
            {
                this.currentUploadProgressArgs = new StreamTransferProgressArgs(args.IncrementTransferred,
                                                                                this.currentUploadProgressArgs.TransferredBytes + args.IncrementTransferred,
                                                                                this.currentUploadProgressArgs.TotalBytes);
            }

            AWSSDKUtils.InvokeInBackground(this.options.StreamTransferProgress,
                                           this.currentUploadProgressArgs, this);
        }
Example #12
0
        private void ProgressEventCallback(object sender, StreamTransferProgressArgs e)
        {
            double percentDone = Math.Round(((double)(e.TransferredBytes + CurrentTransferredBytes) * 100) / ContentTotalBytes);

            percentDone = percentDone >= 100 ? 100 : percentDone;
            long transferredBytes = (e.TransferredBytes + CurrentTransferredBytes) > ContentTotalBytes ? ContentTotalBytes : e.TransferredBytes + CurrentTransferredBytes;

            UploadProgressEvent?.Invoke(this, new S3ProgressArgs
            {
                TransferredBytes = transferredBytes,
                TotalBytes       = ContentTotalBytes,
                PercentDone      = (int)percentDone
            });
        }
Example #13
0
        /// <summary>
        /// 获取上传进度
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void streamProgressCallback(object sender, StreamTransferProgressArgs args)
        {
            Console.WriteLine("上传进度: {0}%, 文件大小:{1}, 已上传:{2} ",
                              args.TransferredBytes * 100 / args.TotalBytes, args.TotalBytes, args.TransferredBytes);

            /*long offset = 0;
             * while (args.TransferredBytes * 100 / args.TotalBytes < 100)
             * {
             *  offset += args.TotalBytes;
             *  lblSize.Text += args.TotalBytes;
             *  lblJindu.Text += args.TransferredBytes;
             *  progressBar1.Maximum = 100;
             *  progressBar1.Minimum = 0;
             *  progressBar1.Value = 0;
             *  progressBar1.Value = (int)(args.TransferredBytes * 100 / args.TotalBytes);
             * }*/
        }
Example #14
0
        public void OnTransferProgress(object sender, StreamTransferProgressArgs e)
        {
            var compensationForRetry = 0L;

            if (_lastProgressArgs != null)
            {
                if (_lastProgressArgs.TransferredBytes >= e.TransferredBytes)
                {
                    // The request was retried
                    compensationForRetry = _lastProgressArgs.TransferredBytes;
                }
            }

            var progressArgs = new UploadProgressArgs(e.IncrementTransferred, e.TransferredBytes, e.TotalBytes,
                                                      compensationForRetry, null);

            _callback(this, progressArgs);

            _lastProgressArgs = e;
        }
Example #15
0
 public void OnUploadProgress(object sender, StreamTransferProgressArgs args)
 {
     Console.WriteLine($"PercentDone: {args.PercentDone}");
     Console.WriteLine($"Total Tansfer: {args.TransferredBytes}/{args.TotalBytes}");
     Console.WriteLine($"IncrementTransferred: {args.IncrementTransferred}");
 }
Example #16
0
 public static void UploadPartProgressEventCallback(object sender, StreamTransferProgressArgs e)
 {
     // Process event.
     Console.WriteLine("{0}/{1}", e.TransferredBytes, e.TotalBytes);
 }
 private void StreamProcess(object sender, StreamTransferProgressArgs args)
 {
     process = (args.TransferredBytes * 100 / args.TotalBytes) / 100.0f;
 }
Example #18
0
 /// <summary>
 /// 上传进度 回调
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 void Upload_ProgressCallback(object sender, StreamTransferProgressArgs args)
 {
     UploadProcess = (args.TransferredBytes * 100 / args.TotalBytes) / 100;
 }
Example #19
0
 protected void StreamTransferProgress(object sender, StreamTransferProgressArgs args)
 {
     uploadTaskInfo.UploadStatus = $"{args.PercentDone}%";
 }
Example #20
0
 /// <summary>
 /// 进度条
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 private static void streamProgressCallback(object sender, StreamTransferProgressArgs args)
 {
     ThisProcessDelegate?.Invoke(sender, args);
     //System.Console.WriteLine("ProgressCallback - Progress: {0}%, TotalBytes:{1}, TransferredBytes:{2} ",
     //    args.TransferredBytes * 100 / args.TotalBytes, args.TotalBytes, args.TransferredBytes);
 }
Example #21
0
 private static void streamProgressCallback(object sender, StreamTransferProgressArgs args)
 {
     Console.WriteLine("ProgressCallback - TotalBytes:{0}, TransferredBytes:{1}, IncrementTransferred:{2}",
                       args.TotalBytes, args.TransferredBytes, args.IncrementTransferred);
 }
Example #22
0
 // 获取上传进度。
 private static void streamProgressCallback(object sender, StreamTransferProgressArgs args)
 {
     Console.WriteLine($"Progress: {args.TransferredBytes * 100 / args.TotalBytes}%, TotalBytes:{args.TotalBytes}, TransferredBytes:{args.TransferredBytes}");
 }
Example #23
0
 private void OnUploadProgress(object sender, StreamTransferProgressArgs e)
 {
     Console.WriteLine($"Percent Done: {e.PercentDone}");
     Console.WriteLine($"Total Transfer: {e.TransferredBytes} / {e.TotalBytes}");
     Console.WriteLine($"Increment Transferred: {e.IncrementTransferred}");
 }
 private void uploadProgressCallback(object sender, StreamTransferProgressArgs args)
 {
     System.Console.WriteLine("UploadProgressCallback - TotalBytes:{0}, TransferredBytes:{1}",
                              args.TotalBytes, args.TransferredBytes);
 }
        internal override void Execute()
        {
            FileInfo   fileInfo   = new FileInfo(filePath);
            FileStream fileStream = File.OpenRead(filePath);
            string     uploadId   = null;

            try
            {
                this.currentUploadProgressArgs = new StreamTransferProgressArgs(0, 0, fileInfo.Length);

                long partSize = CalculatePartSize(fileInfo.Length);
                InitiateMultipartUploadRequest initiateRequest = new InitiateMultipartUploadRequest
                {
                    AccountId          = this.options.AccountId,
                    ArchiveDescription = archiveDescription,
                    VaultName          = vaultName,
                    PartSize           = partSize
                };
                initiateRequest.BeforeRequestEvent += new UserAgentPostFix("MultiUpload").UserAgentRequestEventHandlerSync;
                InitiateMultipartUploadResult initiateResult = this.manager.GlacierClient.InitiateMultipartUpload(initiateRequest).InitiateMultipartUploadResult;


                uploadId = initiateResult.UploadId;

                List <string> partTreeHashs   = new List <string>();
                long          currentPosition = 0;
                while (currentPosition < fileInfo.Length)
                {
                    long length = partSize;
                    if (currentPosition + partSize > fileInfo.Length)
                    {
                        length = fileInfo.Length - currentPosition;
                    }

                    PartStreamWrapper partStream = new PartStreamWrapper(fileStream, length);

                    string checksum = TreeHashGenerator.CalculateTreeHash(partStream);
                    partTreeHashs.Add(checksum);

                    UploadMultipartPartRequest uploadRequest = new UploadMultipartPartRequest
                    {
                        AccountId = this.options.AccountId,
                        Checksum  = checksum,
                        Body      = partStream,
                        Range     = ("bytes " + currentPosition + "-" + (currentPosition + length - 1) + "/*"),
                        UploadId  = uploadId,
                        VaultName = vaultName
                    };
                    uploadRequest.StreamTransferProgress += this.ProgressCallback;
                    uploadRequest.BeforeRequestEvent     += new UserAgentPostFix("MultiUpload").UserAgentRequestEventHandlerSync;

                    this.manager.GlacierClient.UploadMultipartPart(uploadRequest);
                    currentPosition += partSize;
                }

                string totalFileChecksum = TreeHashGenerator.CalculateTreeHash(partTreeHashs);
                string archiveSize       = fileInfo.Length.ToString();
                CompleteMultipartUploadRequest compRequest = new CompleteMultipartUploadRequest
                {
                    AccountId   = this.options.AccountId,
                    ArchiveSize = archiveSize,
                    VaultName   = vaultName,
                    Checksum    = totalFileChecksum,
                    UploadId    = uploadId
                };
                compRequest.BeforeRequestEvent += new UserAgentPostFix("MultiUpload").UserAgentRequestEventHandlerSync;
                CompleteMultipartUploadResult completeMultipartUploadResult = this.manager.GlacierClient.CompleteMultipartUpload(compRequest).CompleteMultipartUploadResult;

                string archiveId = completeMultipartUploadResult.ArchiveId;
                this.UploadResult = new UploadResult(archiveId, totalFileChecksum);
            }
            catch (Exception)
            {
                // If we got an unrecoverable then abort the upload.
                if (!string.IsNullOrEmpty(uploadId))
                {
                    AbortMultipartUploadRequest abortRequest = new AbortMultipartUploadRequest()
                    {
                        AccountId = this.options.AccountId,
                        VaultName = this.vaultName,
                        UploadId  = uploadId
                    };
                    abortRequest.BeforeRequestEvent += new UserAgentPostFix("MultiUpload").UserAgentRequestEventHandlerSync;
                    this.manager.GlacierClient.AbortMultipartUpload(abortRequest);
                }

                throw;
            }
            finally
            {
                try { fileStream.Close(); }
                catch (Exception) { }
            }
        }
 private void StreamTransferProgress(object sender, StreamTransferProgressArgs args)
 {
     UplodingProgressValue = args.PercentDone;
 }
Example #27
0
 /// <summary>
 /// Handles the UploadProgress even to display the progress of the
 /// S3 multi-part upload.
 /// </summary>
 /// <param name="sender">The object that raised the event.</param>
 /// <param name="e">The event parameters.</param>
 public static void UploadPartProgressEventCallback(object sender, StreamTransferProgressArgs e)
 {
     Console.WriteLine($"{e.TransferredBytes}/{e.TotalBytes}");
 }
Example #28
0
 private static void UploadGlacierProgress(object sender, StreamTransferProgressArgs e)
 {
     Debug.WriteLine($"Uploaded {e.PercentDone}");
 }
 void OssDown(object sender, StreamTransferProgressArgs args)
 {
     TotalBytes       = args.TotalBytes;
     TransferredBytes = args.TransferredBytes;
 }