をダウンロード:GoogleドライブV3再開可能私はGoogleドライブのAPI V3を使用してGoogleドライブからファイルをダウンロードするには、このコードを使用
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
これは、安定した接続で正常に動作しますが、私が接続を失った場合、それはあっても、永遠に停止し、待機私は再びつながる。
私は更新(アップロード)でこの問題を持っていない、このコード内の関数:
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
これは、私はいくつかの時間(15〜30代)のための接続を失った場合、私は、望むとおりに正確に動作し、それが与えますアップロードが失敗したというメッセージと、ユーザーに再開または終了の選択肢が与えられます。すべてが完璧に機能します。
私の質問は、ダウンロード機能をアップロード機能のように動作させる方法、または少なくとも永遠に待たずに失敗メッセージを出す方法です。
ありがとう、私はこの問題の回避策として非常に似たようなことをしましたが、私はGoogleドライブがより良い方法を持っていると確信しています。 – Fadi