带有 Google V3 API 的 Golang:将 alt=media 传递给 Export 调用

带有 Google V3 API 的 Golang:将 alt=media 传递给 Export 调用

IT小君   2022-11-12T09:51:20

在 Go 语言的 Google V3 API 中,如何将 alt=media 传递给 Files.Export() 调用?V3 网站没有说明它如何为 golang 工作。我只是想将 Google 文档转换为文本文档并将其存储在驱动器中。调用 Files.Export().Do() 会导致要求 alt=media 的错误。

服务器费用不足...
评论(1)
IT小君

我相信你的目标和情况如下。

  • 您想使用 googleapis for golang 将 Google Document 下载到 Google Drive 上作为文本数据。
  • 您已经能够使用 Drive API 下载该文件。

修改点:

  • 不幸的是,alt=media不能用于“文件:导出”的方法alt=media用于“Files:get”的方法。参考
  • 为了将Google Document作为文本数据下载到Google Drive上,需要使用“Files: export”的方法。顺便说一句,当您要下载除Google Docs文件以外的文件(Document、Spreadsheet、Slides等)时,请使用“Files:get”的方法。

当以上几点反映到您的脚本中时,它会变成如下。

修改后的脚本:

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

参考:

2022-11-12T09:51:20   回复