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

Posted

技术标签:

【中文标题】在 gdrive 上更改文件后无法立即获取最新版本【英文标题】:Cannot get the newest revision immediately after the file changed on gdrive 【发布时间】:2021-06-03 07:53:33 【问题描述】:

来自本期: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 下载文件。还是不能得到最新的文件,还是得到了以前的。

【问题讨论】:

关于editAfter edit the file on gdrive,如何编辑?你正在编辑 XLSX 文件?我无法理解你的情况。对此我深表歉意。 @Tanaike只需更改XLSX文件中某个单元格的内容,然后保存 感谢您的回复。我不得不为我糟糕的英语水平道歉。关于Just change the content of a cell in the XLSX file, then save it,在这种情况下,您使用浏览器在 Google Drive 中打开 XLSX 文件并手动编辑并保存它。我的理解正确吗? @Tanaike 是的,完全正确 感谢您的回复。当我测试上述情况(you open the XLSX file in your Google Drive using your browser and manually edit and save it.)并在 3 到 5 秒后,当我检索修订列表并从修订列表中下载最新文件时,该列表包含正确的上次编辑时间并且文件是最新文件。在现阶段,我无法复制你的情况。我为此道歉。当我可以正确复制您的情况时,我想考虑解决方法。 【参考方案1】:

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

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

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

【讨论】:

以上是关于在 gdrive 上更改文件后无法立即获取最新版本的主要内容,如果未能解决你的问题,请参考以下文章

outlook存档后毫无反应

Mercurial - 如何从fork的父级获取最新更改?

openssl-1.0.1g以后的版本都有哪些

在某些版本手机中通过UIAutomatorViewer工具无法获取手机屏幕元素的信息?

如何升级OpenSSl版本

使用 Saxon 时如何停止样式表文件锁定?