使用Python API上传二进制文件Google Drive仍然不显示md5Checksum元数据

时间:2018-03-26 03:38:51

标签: python google-api google-drive-api google-api-python-client

我需要查看我上传到Google云端硬盘帐户的文件是否需要使用我本地硬盘上的原始文件进行更新。为此,我想使用一些哈希,如md5sum。因此,驱动器上存储的文件的md5Checksum元数据似乎是最合适的(条件是,我会查找修改时间戳,但考虑到处理日期/时间转换的负担,这不太吸引人) 。因此,使用下面的代码,使用已知的fileId:

fileId = 'whatever'  # gotten from a previous upload using MediaFileUpload():
fi = drive_service.files().get(fileId=fileId).execute()
import pprint
pprint.pprint(fi)
md5Checksum = fi.get('md5Checksum')
print("\n{}\nmd5Checksum\n{}".format('-' * 80, md5Checksum))

它返回:

{u'id': u'whatever',
 u'kind': u'drive#file',
 u'mimeType': u'application/octet-stream',
 u'name': u'the_name_of_that_file_I_uploaded'}

--------------------------------------------------------------------------------
md5Checksum
None

https://stackoverflow.com/a/36623919/257924所示,md5Checksum值仅对二进制文件可用。但由于上面显示的mimeTypeapplication/octet-stream,所以它不应该可用吗?不是application/octet-stream等同于它是"二进制"文件上传?

我不能做的只是下载文件并运行md5sum Linux实用程序(或等效的Python代码来执行相同操作)以检查它是否有所不同,因为这样就无法检查整个检查点如果文件实际需要更新(删除并重新上传,或上传新版本等)。

更新#1:这与Google Drive API 'md5Checksum' does not work on Python不同,因为我没有使用列表api来获取文件ID。我只是使用上次上传时找到的id来检索该文件的元数据,我希望看到某种类型的哈希值指示其内容,特别是我认为的文件(希望)被视为"二元"。

0 个答案:

没有答案