我正在尝试弄清楚如何检索上传到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'}
我在这里缺少什么?如何查看文件大小?
答案 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文档或表格中创建的文件),则这些文件不会占用您的配额所占用的空间,因此没有大小。