2012-10-23 248 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

相关问题