从 Google 驱动器 Api (python) 获取文件大小

Get file size from Google Drive Api (python)

我正在尝试弄清楚如何检索上传到 Google Drive 的文件的文件大小。根据 docs 这应该在文件元数据中...但是当我请求它时,文件大小根本不在元数据中。

file = self.drive_service.files().get(fileId=file_id).execute()
print(file)

>>> {u'mimeType': u'application/x-zip', u'kind': u'drive#file', u'id': u'0B3JGbAfem1CrWnhtWq5qYlkzSXf', u'name': u'myfile.ipa'}

我在这里错过了什么?如何查看文件大小?

默认情况下,元数据中仅包含少数 select 个属性。

要请求特定属性,请使用 fields 参数:

file = self.drive_service.files().get(fileId=file_id, fields='size,modifiedTime').execute()

这将查询文件的大小和修改时间。

顺便说一句,您发布的link指的是旧v2 API。您可以在当前 v3 API here.

中找到所有文件属性的列表

您在这里缺少 'fields' 特殊查询参数。它用于给出 google api 的部分响应。部分响应主要用于提高api调用性能。

新引入的 v3 apis 略有变化,文件列表 apis 响应在响应中提供了一些默认属性,与 v2 apis 不同,默认给出响应的所有属性。

不过,如果您想要响应中的所有属性,请将“fields=*”作为查询传递。

希望对您有所帮助!

fields 内传递 'size' 应该可行。

示例:fields='size'

虽然如果文件是 Google 驱动器的本地文件,例如在 Google 文档或表格中创建的文件,这些文件不会占用 space 您的配额,因此不会没有尺码。