google-drive-api - 在 Windows 10 上从谷歌驱动器下载大文件?
问题描述
我正在尝试从大约 20gb 的谷歌驱动器下载 zip 文件,它有 10-15 个文件,有些文件大到 4gb,我正在逐个下载文件,但超过 1.5gb 的文件没有被下载完全地。他们缺少很多内容,例如,我尝试下载 3.5gb 的文件,下载后只有 1.2g 的文件,里面的文件更少。
我试过这个,
Invoke-RestMethod -Uri https://www.googleapis.com/drive/v3/files/ID_OF_FILE?alt=media -Method Get -Headers @{"Authorization"="Bearer ACCESS_TOKENS"} -OutFile file1.zip
但我得到的错误只有
“只能下载具有二进制内容的文件。将导出与 Google Docs 文件一起使用”
这个问题有什么解决办法吗?
解决方案
该错误意味着无法通过 files.get 的 alt=media 下载 Google Docs。不幸的是,原始的 Google Docs 无法下载,您可以将它们导出为多个 mimeType。tehhowch 已经说过了。因此,当您要下载 Google Docs 时,请使用 files.export,并按照 tehhowch 的说法转换为其他 mimeType。
作为示例,当您使用 Invoke-RestMethod 下载电子表格时,命令如下。在此示例中,文件通过转换为 xlsx 文件来下载。
Invoke-RestMethod -Uri https://www.googleapis.com/drive/v3/files/### file ID ###/export?mimeType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet -Method Get -Headers @{"Authorization"="Bearer ACCESS_TOKENS"} -OutFile sample.xlsx
笔记 :
使用时请使用 Google Docs 对应的 mimeType。如果您想知道下载 Google Docs 文件时可以导出的 mimeType,可以使用 drive.about.get 检索数据,如下所示。
Invoke-RestMethod -Uri https://www.googleapis.com/drive/v3/about?fields=exportFormats -Method Get -Headers @{"Authorization"="Bearer ACCESS_TOKENS"} -OutFile sample.txt
参考:
如果这不起作用,请告诉我。我想考虑一下解决方法。
推荐阅读
- python - AWS IoT:影子未更新
- database - 本地 Angular 数据库
- json - 如何以对象类型而不是数组类型提供 Json 输入?
- sql - 具有多个数据库的 SQL Server 嵌套事务
- amazon-web-services - 是否可以在 cloudformation 模板中静态指定 AWS::StackName?
- javascript - 承诺错误的订单执行
- arrays - 使用格式化程序通过数组一致地提取数据?
- git - 如何为 Git 命令设置默认标志?
- reactjs - 如果字段的值是从状态初始化的,如何使字段禁用
- laravel-5 - laravel中的vue-multiselect不起作用