gpt4 book ai didi

google-drive-api - Google Drive Rest API - 如何检查文件是否已更改

转载 作者:行者123 更新时间:2023-12-01 10:19:38 37 4
gpt4 key购买 nike

除了比较完整内容之外,是否有一种可靠的方法来检查云端硬盘中的文件是否已更新/更改?

我一直在为此苦苦挣扎。这是我尝试过的两件事:

1.文件version号码

我将纯文本文件上传到 Google Drive( simple uploadupdate endpoint ),并保存 version来自 file metadata上传成功后返回。

然后我偶尔会轮询 Drive API ( get endpoint ) 以检查版本是否已更改。

麻烦的是,在上传文件后的一两秒钟内,版本会再次上升。

文件内容没有变化。该文件尚未在其他任何地方打开、查看甚至下载。尽管如此,版本号还是比上传后的版本号增加了。

对于我的代码,此版本号更改表明 Drive 中的远程文件已更改,因此它会下载新版本。每次!

2. Changes端点

作为替代方案,我尝试使用 Changes api .

上传文件后,我得到一个 page token使用 changes.getStartPageToken changes.list .

后来我用这个page token轮询 Changes API 的更改,并过滤上传文件的 fileId 的更改。我在轮询更改时使用这些选项:

{
"includeRemoved": false
"restrictToMyDrive": true
"spaces": "drive"
}

同样,版本号也存在同样的问题。上传文件后立即返回的页面 token 在一两秒内再次更改。新页面 token 显示上传的文件已更改。

同样,文件内容没有变化。它尚未在其他任何地方打开、更新、下载。它不与任何其他人共享。

然而,上传后几秒钟,该文件重新出现在更改列表中。

因此,本地代码会从 Drive 重新下载文件,假设远程更改。

可能的解决方法

作为一个hacky hook,我可以在文件上传后等待几秒钟,然后再获取新的文件版本/更改页面 token 。这可能会解决延迟版本增量问题。

但是,没有文档说明是什么导致了版本号(或 changes.list)出现这种幻影变化。所以,我没有确定的方法知道:
  • 在不丢失其他用户/应用程序可能进行的更改的情况下,等待多长时间是足够安全的以获取“已解决”的版本号?
  • 新的(延迟的)版本号是否会稳定,还是可能随时无故再次更改?


  • 除了比较完整内容之外,是否有一种可靠的方法来检查云端硬盘中的文件是否已更新/更改?

    最佳答案

    您可以尝试使用 md5Checksum File resource object 的属性(property), 如果您的文件不是 Google Doc 文件(即二进制文件)。您应该能够使用它来跟踪对二进制文件内容的更改。

    您也可以使用 Revisions API .

    Revisions resource object还有一个md5Checksum属性(property)。

    关于google-drive-api - Google Drive Rest API - 如何检查文件是否已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54790130/

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