Ich benutze diesen Code eine Datei von Google Drive mit Google Drive api V3 zum Download:Google Drive V3 Wiederaufnehmbare Herunterladen
Function gDownload() As Boolean
Dim fileID As String = "0B-W1aRTTOB1QM3hPd0dOUFVObHM"
Dim stream = New System.IO.MemoryStream()
Dim r = service.Files.Get(fileID)
Dim m = r.MediaDownloader
m.ChunkSize = 256 * 1024
AddHandler m.ProgressChanged, AddressOf Download_ProgressChanged
mStart:
r.Download(stream)
Return True ' or False if download failed
End Function
Private Sub Download_ProgressChanged(s As IDownloadProgress)
Console.WriteLine(s.Status.ToString & " " & s.BytesDownloaded)
End Sub
Dies funktioniert gut mit einer stabilen Verbindung, aber wenn ich Verbindung verlieren sie stoppt und wartet immer, auch wenn Ich verbinde mich wieder.
Ich habe dieses Problem nicht mit Update (Upload) Funktion in diesem Code:
Function gUpload() As Boolean
Dim fileID As String = "0B-W1aRTTOB1QM3hPd0dOUFVObHM"
Dim stream As New System.IO.FileStream("D:\gtest\Test.mp4", System.IO.FileMode.Open)
Dim fBody As File = New File With {.Name = "Test.mp4"}
Dim r = service.Files.Update(fBody, fileID, stream, "application/octet-stream")
r.ChunkSize = ResumableUpload.MinimumChunkSize
AddHandler r.ProgressChanged, AddressOf Upload_ProgressChanged
mStart:
r.Resume()
If r.GetProgress.Status = 3 Then ' UploadStatus.Completed
Return True
Else
If MessageBox.Show("Failed. do you want to resume?", "Failed", MessageBoxButtons.YesNo) = DialogResult.Yes Then
GoTo mStart
End If
End If
Return False
End Function
Private Sub Upload_ProgressChanged(s As IUploadProgress)
Console.WriteLine(s.Status.ToString & " " & s.BytesSent)
End Sub
Dies funktioniert genau so, wie ich will, wenn ich Verbindung für einige Zeit zu verlieren (15 ~ 30) gibt es eine Die Nachricht, dass der Upload fehlgeschlagen ist, gibt einem Benutzer die Möglichkeit, den Vorgang fortzusetzen oder zu beenden. alles funktioniert perfekt.
Also meine Frage ist: Wie man die Download-Funktion funktioniert wie die Upload-Funktion oder zumindest machen es nicht ewig warten und gibt eine Fehlermeldung.
Vielen Dank, ich habe eine ähnliche Lösung gefunden, aber Google Drive hat einen besseren Weg und wir konnten ihn nicht finden. – Fadi