除了比较全部内容之外,是否有一种可靠的方法来检查驱动器中的文件是否更新/更改?
我将一个纯文本文件上传到Google Drive(简单上传,更新endpoint),并从成功上传后返回的文件元数据中保存版本
。
然后,我偶尔轮询驱动器API(get endpoint)以检查版本是否已更改。
问题是,在上传文件的一两秒钟内,版本又会被提升。
文件内容没有更改。该文件尚未在其他任何地方打开、查看或下载。不过,版本号会比上传后的版本号增加。
对我的代码来说,这个版本号的更改表明远程文件在驱动器中已经更改,所以它下载新版本。每次都是!
2.更改
endpoint
作为替代方案,我尝试使用Changes API。
上传文件后,我会使用changes.getStartPageToken
或changes.list
获得页面标记
。
稍后,我使用这个页面标记
轮询Changes API以查找更改,并根据上传文件的文件ID筛选更改。我在轮询更改时使用以下选项:
{
"includeRemoved": false
"restrictToMyDrive": true
"spaces": "drive"
}
然而,上传几秒钟后,该文件就会重新出现在更改列表中。
因此,假设远程更改,本地代码将从驱动器重新下载文件。
可能的变通办法
除了比较全部内容之外,是否有一种可靠的方法来检查驱动器中的文件是否更新/更改?
您还可以使用修订API。
Revisions资源对象还具有MD5checksum
属性。
问题内容: 我试图找到一种聪明的方法来找出传递给sed的文件是否已成功更改。 基本上,我想知道文件是否已更改,而不必查看文件修改日期。 我之所以需要这样做,是因为如果sed成功替换了模式,我需要做一些额外的事情。 我目前有: 上面的代码有点贵,我希望能够在这里使用一些技巧。 问题答案: 您可以改用: ” 我忽略了该功能:您可以根据需要使用Shell做重定向。 叹。下面有许多评论要求提供有关shel
问题内容: 以编程方式检查PDF文件是否被完全扫描的最佳方法是什么?我确实可以使用iText和PDFBox。我可以检查pdf文件是否包含文本,并根据结果确定该文件是否为OCRed,但是此解决方案并非100%准确。我想知道是否还有另一种方法来解决这个问题。 如您所知,解决方案必须基于Java。 问题答案: 最好的选择是检查它是否包含文本,还查看它是否包含大的页面化图像或覆盖页面的大量平铺图像。如果您
问题内容: 在我的模型中,我有: 第一次修改效果很好。 有人修改别名上的时,如何获取新图像?其次,是否有更好的方法来缓存远程映像? 问题答案: 本质上,你想覆盖方法,以便保留原始值的副本。这样一来,你就不必进行其他数据库查找(这总是一件好事)。
问题内容: 我需要编写一个自定义的批处理文件重命名器。我已经完成了大部分工作,除了我不知道如何检查文件是否已经打开。我只是在使用软件包,并且有一种方法,但是似乎无法测试该文件是否正在被另一个程序使用。关于如何进行这项工作的任何想法? 问题答案: 使用Apache Commons IO库…
如果文档ID不存在,我想将数据添加到firestore数据库中。到目前为止,我一直在尝试: 目标是检查数据库中的所有文档ID,并查看与“varuId”变量的任何匹配。如果匹配,则不会创建文档。如果不匹配,它应该创建一个新文档
问题内容: 我想检查linux bash文件是否已创建超过x次。 假设文件名为text.txt,时间为2个小时。 问题答案: 仅用于修改时间 或者,同一行: 您可以使用更改或访问时间。正如其他人指出的那样,我认为您无法跟踪创建时间。