使用 c# 从 google 驱动器下载文件而不使用 google API
Download file from google drive using c# without google API
根据要求,客户端提供了一个exe-(其中包含要下载的文件url)如果我们使用google api,我们需要与 exe 一起提供额外的参考。客户端不允许。
我使用webclient下载文件,但它下载的文档类型为HTML。我的要求是在不使用 google API 的情况下下载文件形式 google 驱动器 。有什么办法吗?
我试过下面的代码
WebClient wb = new WebClient();
wb.DownloadFile("https://drive.google.com/file/d/0BzpAdEg-KyDjNVVSb0FBOWQ4V0k/view?usp=sharing", @"C:\TFS\test\test.pdf");
结果如下图
这应该对你有帮助。
以下是 google 驱动器的标准共享 url。
https://drive.google.com/file/d/FILE_ID/edit?usp=sharing
直接下载需要使用的格式是:
https://drive.google.com/uc?export=download&id=FILE_ID
这将 link 直接转到文件而不是当前示例中的驱动器视图。
因此,例如,如果您的分享 url 是 https://drive.google.com/file/d/ABCDEFG1234567/edit?usp=sharing
那么你的直接下载url就是https://drive.google.com/uc?export=download&id=ABCDEFG1234567
请注意,这仅适用于您自己上传的文件,这些文件不是使用 google 文档在驱动器本身中创建的(即文档、演示文稿、电子表格)。为此,格式会发生变化(如果需要,将更新答案)
编辑:
值得注意的是,如果文件位置发生变化,那么 url 和直接下载 link 也会发生变化,这意味着您需要更新它。
根据要求,客户端提供了一个exe-(其中包含要下载的文件url)如果我们使用google api,我们需要与 exe 一起提供额外的参考。客户端不允许。
我使用webclient下载文件,但它下载的文档类型为HTML。我的要求是在不使用 google API 的情况下下载文件形式 google 驱动器 。有什么办法吗?
我试过下面的代码
WebClient wb = new WebClient();
wb.DownloadFile("https://drive.google.com/file/d/0BzpAdEg-KyDjNVVSb0FBOWQ4V0k/view?usp=sharing", @"C:\TFS\test\test.pdf");
结果如下图
这应该对你有帮助。
以下是 google 驱动器的标准共享 url。
https://drive.google.com/file/d/FILE_ID/edit?usp=sharing
直接下载需要使用的格式是:
https://drive.google.com/uc?export=download&id=FILE_ID
这将 link 直接转到文件而不是当前示例中的驱动器视图。
因此,例如,如果您的分享 url 是 https://drive.google.com/file/d/ABCDEFG1234567/edit?usp=sharing
那么你的直接下载url就是https://drive.google.com/uc?export=download&id=ABCDEFG1234567
请注意,这仅适用于您自己上传的文件,这些文件不是使用 google 文档在驱动器本身中创建的(即文档、演示文稿、电子表格)。为此,格式会发生变化(如果需要,将更新答案)
编辑:
值得注意的是,如果文件位置发生变化,那么 url 和直接下载 link 也会发生变化,这意味着您需要更新它。