从Google Drive Api(python)获取文件大小

时间:2017-06-02 07:20:07

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

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

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'}

我在这里缺少什么?如何查看文件大小?

3 个答案:

答案 0 :(得分:5)

默认情况下,元数据中只包含少数选择属性。

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

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

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

顺便说一下,您发布的链接是指旧的v2 API。您可以在当前v3 API here中找到所有文件属性的列表。

答案 1 :(得分:2)

您在这里缺少'fields'特殊查询参数。它用于为谷歌apis提供部分响应。部分响应主要用于改善api呼叫性能。

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

虽然,如果您想要响应中的所有属性,请将'fields = *'作为查询传递。

希望,这有帮助!

答案 2 :(得分:0)

'size'中传递fields应该可以。

示例:fields='size'

尽管如果文件是Google云端硬盘的本地文件(例如在Google文档或表格中创建的文件),则这些文件不会占用您的配额所占用的空间,因此没有大小。