在 gdrive 上更改文件后无法立即获取最新修订版

问题描述

来自这个问题:https://github.com/googleapis/google-api-go-client/issues/906

使用 api v3 列出和同步 gdrive 上的 excel 文件

const fieldsContent = "nextPagetoken,files(id,name,version,mimeType,size,md5Checksum,modifiedTime,lastModifyingUser,webViewLink)"
const qInParent     = "'%s'  in parents"
const trashFalse    = " and trashed=false"
func (d *Drive) testList(id string)  {
    var driveService *drive.Service
    var pagetoken string
    // .....init the service
    fileList,err := driveService.Files.List().Q(fmt.Sprintf(qInParent,id)+trashFalse).
        Fields(fieldsContent).
        PageSize(pageSize).Pagetoken(pagetoken).Do()
    // ... print the files
}

只是一个简单的测试用例。

2021-03-04T15:14:16+08:00,得到 test.xlsx 状态:

Md5校验和:668395eb4b0db465efaf631df3aefd86

修改时间:2021-03-04T07:13:02.100Z

2021-03-04T15:16:06+08:00,得到 test.xlsx 状态:

Md5校验和:668395eb4b0db465efaf631df3aefd86

修改时间:2021-03-04T07:13:02.100Z

2021-03-04T15:16:28+08:00,得到 test.xlsx 状态:

Md5校验和:6155d40b7376d8c675c02ebd5a2394e9

修改时间:2021-03-04T07:13:48.638Z

文件第一次改变时间:2021-03-04T07:13:02.100Z,第二次改变时间:2021-03-04T07:13:48.638Z,但是通过api,我们不能立即得到改变文件的信息,可能会延迟几分钟,也许有时 10 分钟。

更新: 在 gdrive 上编辑文件后,在几分钟内通过 api 下载文件。还是拿不到最新的文件,还是拿到了上一个

解决方法

@Tanaike 我找到了原因。 如果您使用 Docs Editors 进行测试,则文件如下所示: enter image description here

我可以使用 api file.get 导出文件并下载最新的但仍然无法立即获取VersionNumber和ModifiedTime,获取最新的VersionNumber和ModifiedTime还有几分钟的延迟

请尝试使用类似这样的XLSX文件进行测试,您无法下载最新文件,也无法在修改后的几分钟内获取VersionNumber和ModifiedTime并将文件保存在gdrive上。

enter image description here