我正在尝试从包含大约20gb的谷歌驱动器下载zip文件,它有10-15个文件,一些文件大到4 GB,我正在逐个下载文件,但超过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文档文件导出”
解决这个问题的方法是什么?
答案 0 :(得分:1)
该错误表示无法通过alt = media of files.get下载Google文档。遗憾的是,无法下载原始Google文档,您可以将它们导出为多个mimeType。这已经由tehhowch说过了。因此,当您想下载Google文档时,请使用files.export,并转换为其他mimeTypes,如tehhowch所说。
作为示例,当您使用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文档对应的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
如果这不起作用,请告诉我。我想想一下解决方法。