html - 带有 Google V3 API 的 Golang:将 alt=media 传递给导出调用
问题描述
在 Go 语言的 Google V3 API 中,如何将 alt=media 传递给 Files.Export() 调用?V3 网站没有说明它如何为 golang 工作。我只是想将 Google 文档转换为文本文档并将其存储在驱动器中。调用 Files.Export().Do() 会导致要求 alt=media 的错误。
解决方案
我相信你的目标和情况如下。
- 您想使用 googleapis for golang 将 Google Drive 上的 Google 文档作为文本数据下载。
- 您已经能够使用 Drive API 下载该文件。
修改点:
- 不幸的是,
alt=media
不能用于“文件:导出”的方法。alt=media
用于“文件:获取”的方法。参考 - 为了将 Google Drive 上的 Google Document 作为文本数据下载,需要使用“文件:导出”的方法。顺便说一句,当您要下载除 Google Docs 文件(Document、Spreadsheet、Slides 等)以外的文件时,请使用“文件:获取”的方法。
当以上几点反映到您的脚本时,它变成如下。
修改后的脚本:
documentID := "###" // Please set the Document ID.
mimeType := "text/plain"
filename := "sample.txt"
srv, err := drive.New(client)
if err != nil {
log.Fatalf("Error: %v", err)
}
res, err := srv.Files.Export(documentID, mimeType).Download()
if err != nil {
log.Fatalf("Error: %v", err)
}
file, err := os.Create(filename)
if err != nil {
log.Fatalf("Error: %v", err)
}
defer file.Close()
_, err = io.Copy(file, res.Body)
- 在此示例脚本中,它假设
client
您的脚本可用于从 Google Drive 下载文件。请注意这一点。 - 运行此脚本时,Google 文档将
documentID
导出为filename
.
参考:
- 下载文件
- 文件:导出
- google-api-go-client
- 快速入门
- 如果要查看授权脚本,可以查看 Go 的快速入门。