2012-10-23 596 views
5

我目前正在嘗試製作從Google Drive下載文件的應用程序。如何從Google Drive下載文件

在Google Drive SDK文檔中,我找到了一個應該返回System.IO.Stream對象的示例方法。

https://developers.google.com/drive/manage-downloads

要做到這一點,它需要每個文件的下載網址。 但是,此下載URL並非總是指定返回。有沒有人有任何想法,爲什麼這是?我能做些什麼呢?

更新:我發現我可以使用exportURL。這些幾乎總是由服務返回。

Folowup問題:如何以特定用戶身份運行應用程序? =>有時應用程序向網址發送請求,然後請求超時。當我在瀏覽器中嘗試使用相同的URL時,它就像一個魅力...

謝謝!

回答

1

如果您嘗試下載的文件是本地Google文檔格式,則不會有下載鏈接。如果是這種情況,您必須查找exportLinks。

您將有幾個導出鏈接,所以你必須要選擇哪一種格式最適合你:DOCX或ODT例如用於

文件
+0

我只是打字我的問題同樣的事情:) 現在我有但另一個問題。有時請求超時,我不知道爲什麼,因爲出口鏈接爲什麼我在瀏覽器中嘗試它們。 – Nielsm

+0

我從來沒有經歷過任何超時。隨機服務器錯誤發生。您應該實施指數退避,Drive API文檔中有一個示例 – Jerome

+0

我已將此答案標記爲正確答案,因爲這有助於我進一步瞭解。謝謝! – Nielsm

3

可能會晚點,但我只是用下面的代碼從谷歌驅動下載:

var stream = service.HttpClient.GetStreamAsync(downloadUrl); 
     var result = stream.Result; 
     using (var fileStream = System.IO.File.Create(filePath)) 
     { 
      result.CopyTo(fileStream); 
     } 
+0

你能告訴我應該添加什麼庫來獲得「service.HttpClient.GetStreamAsync(downloadUrl);」? –

+0

@Santarkantos在Sando的「服務」示例中是DriveService的一個實例,它來自Google Drive API。您可以使用NuGet將庫拖入項目並搜索Google.Apis.Drive.v2。 – Scott

相關問題