S3上传进度条

时间:2018-04-25 11:57:41

标签: c# amazon-web-services amazon-s3 uwp

我有这段代码:

try
{
    TransferUtility fileTransferUtility = new TransferUtility(new AmazonS3Client(S3AccessId, S3SecretKey, Amazon.RegionEndpoint.USEast1));

    // Use TransferUtilityUploadRequest to configure options.
    TransferUtilityUploadRequest uploadRequest =
        new TransferUtilityUploadRequest
        {
            BucketName = S3BucketName,
            InputStream = streamx,
            Key = S3FileKey                                              
        };

    uploadRequest.UploadProgressEvent += new EventHandler<UploadProgressArgs>(uploadRequest_UploadPartProgressEvent);

    await fileTransferUtility.UploadAsync(uploadRequest);
    Debug.WriteLine("Upload completed");


}

catch (AmazonS3Exception exception)
{
    Debug.WriteLine(exception.Message, exception.InnerException);


}

我需要更新ListView中生成的项目的上传进度。在这个ListView中可以有多个项目。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您只能在不同的代码行之间进行进度报告。通常这意味着必须将代码分解并复制到您要报告的最低循环。是对文件进行迭代的循环或对DataStream进行迭代的循环。

只有一些较新的类支持深度进度报告。像Windows.Web.Http.HttpClient这样的东西(不要误认为是System.Net.Http.HttpClient)。他们有可以注册的事件,然后用于执行进度报告。我不知道这个亚马逊图书馆是否具备这些功能。