Google Drive API中的查询以搜索文件

时间:2019-06-19 08:50:25

标签: java google-drive-api

我不明白如何在查询中设置ImageMediaMetadata.Width。 Google云端硬盘Api指南对我没有帮助。我不能通过他们的示例使用内部属性。

appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' }

有人知道如何使用变量的内部字段吗?

FileList result = service.files().list()
                .setPageSize(20)
                .setFields("nextPageToken, files(*)")
                .setQ("trashed = false and imageMediaMetadata has { width < 1920 }")
                .execute();

1 个答案:

答案 0 :(得分:0)

问题是,当您尝试在file.downloadUrl中检索 downloadUrl 属性时,该属性在Drive API版本3中不再存在(该版本在2),检查v2 [1]和v3 [2]。

相反,您应该使用 webContentLink 属性下载文件,该文件可用于具有二进制内容(如图像,pdf等)的文件,但不适用于google docs和工作表(仅适用于 webViewLink 属性,即文件的网址)[2]。对于这些情况(文档和表格),您可以实现 import 方法,该方法适用于转换google文档并返回文件对象[3]。

导入请求如下:

var request = gapi.client.drive.files.import({ 'fileId': fileId, 'mimeType': mimeType });

使用mimeType作为所需的目标文档(pdf,txt等)。然后,与其他情况一样,在回调内部,使用file.webContentLink访问属性。

[1] https://developers.google.com/drive/api/v2/reference/files

[2] https://developers.google.com/drive/api/v3/reference/files

[3] https://developers.google.com/drive/api/v3/reference/files/export