gpt4 book ai didi

go - 使用 Google Golang Sheets API V4/Drive API V3 获取电子表格 ID?

转载 作者:数据小太阳 更新时间:2023-10-29 03:13:52 49 4
gpt4 key购买 nike

我在我的一个小项目中使用 Golang,目前正在尝试根据确切的文件系统路径(在云端硬盘中)和电子表格/工作表名称提取电子表格 ID。但是,查看 Golang 中的 API 库,我没有看到允许我执行此操作的函数。

一般来说,我对这种编程还很陌生,如果这有一个微不足道的解决方案,请提前致歉。

谢谢!

最佳答案

您可以在 Google 的 Drive API 中使用 drive.files.listdrive.files.list 可以从您的 Google Drive 中搜索包含文件夹信息的文件。

根据您的问题,我认为可以执行以下 2 个步骤。

  1. 使用 drive.files.list 搜索文件。可以同时检索文件 ID 和父文件夹 ID。在这种情况下,字段是 id 和 parents。

  2. 使用 drive.files.get 从文件夹 id 中检索文件夹名称。该字段是名称。

您可以使用从每个文件中获取的文件夹信息制作文件树。

关于示例脚本,它使用 Go Quickstart for Drive API ( https://developers.google.com/drive/v3/web/quickstart/go ) 请将“第 3 步:设置示例”脚本的 main() 更改为以下脚本。

脚本:

func main() {
ctx := context.Background()

b, err := ioutil.ReadFile("client_secret.json")
if err != nil {
log.Fatalf("Unable to read client secret file: %v", err)
}

// If modifying these scopes, delete your previously saved credentials
// at ~/.credentials/drive-go-quickstart.json
config, err := google.ConfigFromJSON(b, drive.DriveMetadataReadonlyScope)
if err != nil {
log.Fatalf("Unable to parse client secret file to config: %v", err)
}
client := getClient(ctx, config)

srv, err := drive.New(client)
if err != nil {
log.Fatalf("Unable to retrieve drive Client %v", err)
}

r, err := srv.Files.List().PageSize(10).
Fields("nextPageToken, files(id, name)").Do()
if err != nil {
log.Fatalf("Unable to retrieve files: %v", err)
}

// From here, it's sample script.
searchfile := "filename"
r, err := srv.Files.List().
Q("name=\"" + searchfile + "\" and trashed=false").Fields("files(id,parents)").Do() // "trashed=false" doesn't search in the trash box.
if err != nil {
log.Fatalf("Error: %v", err)
}
for _, i := range r.Files {
r, err := srv.Files.Get(i.Parents[0]).Fields("name").Do()
if err != nil {
log.Fatalf("Error: %v", err)
}
fmt.Printf("FileID=%s, FolderID=%s, FolderName=%s\n", i.Id, i.Parents[0], r.Name)
}
}

结果:

FileID=#####, FolderID=#####, FolderName=#####

Google Drive 上的文件可以有多个父文件夹。在此脚本中,它假定每个文件都有一个父文件夹。如果您的文件有多个父文件夹,请从父数组中检索它们的文件夹。

引用:

驱动器.files.list https://developers.google.com/drive/v3/reference/files/list

drive.files.get https://developers.google.com/drive/v3/reference/files/get

Drive API 快速入门 https://developers.google.com/drive/v3/web/quickstart/go

关于go - 使用 Google Golang Sheets API V4/Drive API V3 获取电子表格 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42963406/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com