我无法理解如何在查询中设置 ImageMediaMetadata.Width。 Google Drive 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();
最佳答案
问题是当您尝试检索 file.downloadUrl
中的 downloadUrl 属性时,该字段在 Drive API 版本 3 中不再存在(它在版本 2) 中,检查 v2 [1] 和 v3 [2]。
相反,您应该使用 webContentLink 属性来下载文件,该属性适用于具有图像、pdf 等二进制内容的文件,但不适用于 Google 文档和表格(仅适用于webViewLink 属性,即文件的 url)[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
关于java - 谷歌驱动器API中用于搜索文件的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56663674/