问题
I'm trying to upload a file into S3bucket using with AWS Sdk for .Net.
I'm uploading a file like below:
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button2.Click
Await AddFileToFolderAsync(file, bucketName, fld)
' here file is file's fullpath,buckatename is
' available s3bucket name,
' fld is target folder path into that s3bucket.
End Sub
Public Async Function AddFileToFolderAsync(FileName As String, bucketName As String, folderName() As String) As Task
Try
If Not AmazonS3Util.DoesS3BucketExistV2(S3client, bucketName) Then
MessageBox.Show("Bucket does not exist")
Dim fname() As String = folderName
CreateFolder(bucketName, fname)
Else
Dim keyname As String = "" 'destination path(s3 bucket folder)
Dim filepath As String = FileName 'current file's local fullpath
Dim fname As String = Path.GetFileName(FileName) 'filename
For i = 0 To folderName.Length - 1
keyname += folderName(i) & "/"
Next
keyname += fname 'bucket's target folder /fname (eg:folder/subfolder/file.mp4)
Dim fileTransferUtility = New TransferUtility(S3client)
Dim fileTransferUtilityRequest = New TransferUtilityUploadRequest With {
.BucketName = bucketName,
.FilePath = filepath,
.StorageClass = S3StorageClass.Standard,
.ServerSideEncryptionMethod = ServerSideEncryptionMethod.None,
.PartSize = 6291456,
.Key = keyname,
.ContentType = "*.*"}
AddHandler fileTransferUtilityRequest.UploadProgressEvent, New EventHandler(Of UploadProgressArgs)(AddressOf UploadRequest_UploadPartProgressEvent)
Await fileTransferUtility.UploadAsync(fileTransferUtilityRequest)
End If
Catch ex As AmazonS3Exception
MessageBox.Show(ex.Message + " Upload task canceled.")
Catch ex As Exception
MessageBox.Show(ex.Message + " Upload task canceled.")
End Try
End Function
I have event handler in above code:
AddHandler fileTransferUtilityRequest.UploadProgressEvent, New EventHandler(Of UploadProgressArgs)(AddressOf UploadRequest_UploadPartProgressEvent)
and it does:
Public Function UploadRequest_UploadPartProgressEvent(ByVal sender As Object, ByVal e As UploadProgressArgs)
' here uploadprogressargs class has two variable which are having
' totalbytes and transferedbytes(those are e.transferedbytes and e.totalbytes)
End Function
Now, my question is: how can I increase the ProgrssValue
based on e.TransferredBytes
?
I hope you all could be understood my question. I'm a beginner in .Net.
来源:https://stackoverflow.com/questions/61833424/async-await-eventhandler-return-value