Golang - 从共享 Google Drive 文件夹中获取文件列表
Golang - get list of files from a shared Google Drive folder
我正在尝试使用已知文件夹 ID 列出来自 Google 驱动器文件夹的文件及其 ID。
驱动服务设置似乎成功了。但是,我在尝试用信息填充变量时感到恐慌。这是代码片段:
driveService, err := drive.NewService(ctx, option.WithCredentialsFile("../serverFiles/credentials.json"))
if err != nil {
log.Printf("Unable to retrieve Drive client: %v", err)
}
r, err := driveService.Files.List().
DriveId('XXXXXXXXXX').
PageSize(10).
Fields("nextPageToken, files(id, name)").
Do()
if err != nil {
log.Fatalf("Unable to retrieve files: %v", err)
}
这是我得到的错误:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x14312db]
感谢您的帮助。
编辑
感谢@Tanaike 的回答,我了解到我对某些要点感到困惑。
我不是要从共享驱动器获取文件列表,而是要从共享文件夹获取文件列表。
我正在使用服务帐户进行访问。在另一个脚本中,同一服务帐户能够写入同一驱动器文件夹。所以,我认为权限是可以的。
这是我现在尝试获取列表的方式(driveService 的设置与上面相同)
r, err := driveService.Files.List().
Corpora("user").
PageSize(10).
Q("'XXXXXXXX' in parents").
Fields("nextPageToken, files(id, name)").
Do()
我仍然收到恐慌和信号。
我相信你的目标如下。
- 您想使用 googleapis for go 从共享驱动器中检索文件列表。
这样的话,下面的修改怎么样?
发件人:
r, err := driveService.Files.List().
DriveId('XXXXXXXXXX').
PageSize(10).
Fields("nextPageToken, files(id, name)").
Do()
收件人:
r, err := driveService.Files.List().
DriveId("XXXXXXXXXX").
Corpora("drive").
SupportsAllDrives(true).
IncludeItemsFromAllDrives(true).
PageSize(10).
Fields("nextPageToken, files(id, name)").
Do()
注:
- 在本次修改中,假设您具有读取共享驱动器的权限,并且您已经可以使用驱动器API。请注意这一点。
参考:
我正在尝试使用已知文件夹 ID 列出来自 Google 驱动器文件夹的文件及其 ID。
驱动服务设置似乎成功了。但是,我在尝试用信息填充变量时感到恐慌。这是代码片段:
driveService, err := drive.NewService(ctx, option.WithCredentialsFile("../serverFiles/credentials.json"))
if err != nil {
log.Printf("Unable to retrieve Drive client: %v", err)
}
r, err := driveService.Files.List().
DriveId('XXXXXXXXXX').
PageSize(10).
Fields("nextPageToken, files(id, name)").
Do()
if err != nil {
log.Fatalf("Unable to retrieve files: %v", err)
}
这是我得到的错误:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x14312db]
感谢您的帮助。
编辑
感谢@Tanaike 的回答,我了解到我对某些要点感到困惑。
我不是要从共享驱动器获取文件列表,而是要从共享文件夹获取文件列表。
我正在使用服务帐户进行访问。在另一个脚本中,同一服务帐户能够写入同一驱动器文件夹。所以,我认为权限是可以的。
这是我现在尝试获取列表的方式(driveService 的设置与上面相同)
r, err := driveService.Files.List().
Corpora("user").
PageSize(10).
Q("'XXXXXXXX' in parents").
Fields("nextPageToken, files(id, name)").
Do()
我仍然收到恐慌和信号。
我相信你的目标如下。
- 您想使用 googleapis for go 从共享驱动器中检索文件列表。
这样的话,下面的修改怎么样?
发件人:
r, err := driveService.Files.List().
DriveId('XXXXXXXXXX').
PageSize(10).
Fields("nextPageToken, files(id, name)").
Do()
收件人:
r, err := driveService.Files.List().
DriveId("XXXXXXXXXX").
Corpora("drive").
SupportsAllDrives(true).
IncludeItemsFromAllDrives(true).
PageSize(10).
Fields("nextPageToken, files(id, name)").
Do()
注:
- 在本次修改中,假设您具有读取共享驱动器的权限,并且您已经可以使用驱动器API。请注意这一点。