I use webrequest uploadfile fuction. But I have error for big files in slow network. So I think maybe buffer or something help me
My code
Private Shared Function GetFileUploadResponse(ByVal fileToUpload As String, ByVal accessToken As String, ByVal uploadUrl As String) As UploadResponse
Dim client = New WebClient()
client.Headers.Add("Authorization", "OAuth " & accessToken)
Dim responseBytes = client.UploadFile(uploadUrl, fileToUpload)
Dim responseString = Encoding.UTF8.GetString(responseBytes)
Dim response = JsonConvert.DeserializeObject(Of UploadResponse)(responseString)
Return response
End Function
when I try upload bigger 100 mb files error aborted.
I found this code but this is for FTP. I use normal webupload. I try to modify my code but give error every try
Dim request As FtpWebRequest =
WebRequest.Create("ftp://ftp.example.com/remote/path/file.zip")
request.Credentials = New NetworkCredential("username", "password")
request.Method = WebRequestMethods.Ftp.UploadFile
Using fileStream As Stream = File.OpenRead("C:\local\path\file.zip"),
ftpStream As Stream = request.GetRequestStream()
Dim read As Integer
Do
Dim buffer() As Byte = New Byte(10240) {}
read = fileStream.Read(buffer, 0, buffer.Length)
If read > 0 Then
ftpStream.Write(buffer, 0, read)
Console.WriteLine("Uploaded {0} bytes", fileStream.Position)
End If
Loop While read > 0
End Using
solution found. problem about webclient timeout. this modifield webclient work good.
Public Class BigWebClient
Inherits WebClient
Protected Overrides Function GetWebRequest(ByVal address As System.Uri) As System.Net.WebRequest
Dim x As WebRequest = MyBase.GetWebRequest(address)
x.Timeout = 60 * 60 * 1000
Return x
End Function
End Class