在 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 下载文件。还是不能得到最新的文件,还是得到了以前的。
【问题讨论】:
关于edit
的After 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 上更改文件后无法立即获取最新版本的主要内容,如果未能解决你的问题,请参考以下文章