我有一个简单的设置:带有服务器端服务的客户端UI。
客户端负责文件夹/文件之间的用户交互。服务器负责保存文件id
和mimeType
提供的文件。
目前,我可以将Google文档,演示文稿,电子表格,绘图作为文件和任何二进制格式文件导出。
GET https://www.googleapis.com/drive/v3/files/fileId/export
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
var response = await httpClient.GetAsync(string.Format("https://www.googleapis.com/drive/v3/files/{0}/export?alt=media&mimeType={1}", fileid, mimeType));
var file = await response.Content.ReadAsStreamAsync();
/* save file using apropriate method/logic */
现在我正在尝试下载并保存文件夹。
如果我们考虑在浏览器中下载之前将Google文件夹视为另一个文件,并附带Google Drive压缩文件夹。我的想法是使用相同的export
端点让Google返回一个zip文件。
GET https://www.googleapis.com/drive/v3/files/{folder_id}/export?alt=media&mimeType=application/zip
但它并不那么简单。
code: 403
domain: global
reason: fileNotExportable
message: Export only supports Google Docs.
在尝试了几个不同的mimeTypes并收到相同的错误后,我得出以下结论。
如果这里有任何谷歌大师,你可以确认:
答案 0 :(得分:2)
以下解决方法如何?
不幸的是,使用Google API时,文件夹无法直接导出为压缩文件。如果要将文件夹导出为压缩文件,例如,以下解决方法如何?
可以使用GET https://www.googleapis.com/drive/v3/files/### file ID ###/export
的端点导出Google文档(电子表格,文档,幻灯片)。但是,与您的案例不同的Google文档的文件无法使用相同的端点导出。所以请使用GET https://www.googleapis.com/drive/v3/files/### file ID ###?alt=media
的端点。在这种情况下,没有mimeType的参数。
如果我误解了你的问题,我很抱歉。