C# 如何从Google Drive下载文件
我目前正在尝试制作一个从谷歌硬盘下载文件的应用程序 在Google Drive SDK文档中,我找到了一个示例方法,该方法应返回System.IO.Stream对象 为此,它需要每个文件的下载URL。 但是,并不总是指定并返回此下载URL。有人知道这是为什么吗?我能做些什么呢 更新:我发现我可以使用exportURL。这些几乎总是由服务返回 下面的问题:如何以特定用户的身份运行应用程序?=>有时,应用程序向url发出请求,然后请求超时。当我在浏览器中尝试相同的URL时,它就像一个符咒C# 如何从Google Drive下载文件,c#,google-drive-api,C#,Google Drive Api,我目前正在尝试制作一个从谷歌硬盘下载文件的应用程序 在Google Drive SDK文档中,我找到了一个示例方法,该方法应返回System.IO.Stream对象 为此,它需要每个文件的下载URL。 但是,并不总是指定并返回此下载URL。有人知道这是为什么吗?我能做些什么呢 更新:我发现我可以使用exportURL。这些几乎总是由服务返回 下面的问题:如何以特定用户的身份运行应用程序?=>有时,应用程序向url发出请求,然后请求超时。当我在浏览器中尝试相同的URL时,它就像一个符咒 谢谢 如
谢谢 如果您试图下载的文件是本机google docs格式,则不会有下载链接。如果是这种情况,您必须查找exportLinks
您将有多个导出链接,因此您必须选择最适合您的格式:例如文档的docx或odt可能会很晚,但我刚刚使用以下代码从Google Drive下载:
var stream = service.HttpClient.GetStreamAsync(downloadUrl);
var result = stream.Result;
using (var fileStream = System.IO.File.Create(filePath))
{
result.CopyTo(fileStream);
}
我刚才在我的问题中输入了同样的内容:)但是现在我有另一个问题。有时请求超时,我真的不知道为什么,因为导出链接可以工作,为什么我在浏览器中尝试它们。我从未经历过任何超时。不过,会发生随机服务器错误。你应该实现指数退避,驱动器API文档中有一个例子,我已经将这个答案标记为正确答案,因为它帮助我进一步了解。谢谢你能告诉我应该添加什么库来获取“service.HttpClient.GetStreamAsync(downloadUrl);”?@Santarkantos,在Sando的示例中,“service”是DriveService的一个实例,它来自googledriveapi。您可以使用NuGet并搜索Google.api.Drive.v2将库拉入项目中。