【问题标题】:How to download a file from Google Drive如何从 Google Drive 下载文件
【发布时间】:2012-10-23 06:58:05
【问题描述】:

我目前正在尝试制作一个从 Google Drive 下载文件的应用程序。

在 Google Drive SDK 文档中,我找到了一个应该返回 System.IO.Stream 对象的示例方法。

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

为此,它需要每个文件的下载 URL。 但是,并不总是指定返回此下载 URL。有谁知道这是为什么?我能做些什么呢?

更新:我发现我可以使用 exportURL。这些几乎总是由服务返回。

后续问题:如何以特定用户身份运行应用? => 有时应用程序向 url 发出请求,然后请求超时。当我在浏览器中尝试相同的 URL 时,它就像一个魅力......

谢谢!

【问题讨论】:

    标签: c# google-drive-api


    【解决方案1】:

    可能会迟到,但我刚刚使用以下代码从 Google 云端硬盘下载:

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

    【讨论】:

    • 你能告诉我应该添加什么库来获取“service.HttpClient.GetStreamAsync(downloadUrl);”吗?
    • @Santarkantos,在 Sando 的示例中,“服务”是 DriveService 的一个实例,它来自 Google Drive API。您可以使用 NuGet 将库拉入您的项目并搜索 Google.Apis.Drive.v2。
    【解决方案2】:

    如果您尝试下载的文件是原生 google 文档格式,您将没有下载链接。如果是这种情况,您必须查找 exportLinks。

    您将有多个导出链接,因此您必须选择最适合您的格式:例如 docx 或 odt 用于文档

    【讨论】:

    • 我只是在我的问题中输入相同的内容:) 但是现在我有另一个问题。有时请求超时,我真的不知道为什么,因为导出链接有效,为什么我在浏览器中尝试它们。
    • 我从未遇到过任何超时。虽然会发生随机服务器错误。您应该实现指数退避,Drive API 文档中有一个示例
    • 我已将此答案标记为正确答案,因为它帮助我更进一步。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多