Google Drive API – 速度太慢

我刚刚在Google Drive API上工作。我有一个问题,它太慢了。我使用文档中的方法。例如:Google Drive API – 速度太慢。

ListgetFilesByParrentId(String Id, Drive service) throws IOException {     Children.List request = service.children().list(Id);     ChildList children = request.execute();     ListchildList = children.getItems();     File file;     Listfiles = new ArrayList();     for (ChildReference child : childList) {      file = getFilebyId(child.getId(), service);      if (file == null) {       continue;      } else if (file.getMimeType().equals(FOLDER_IDENTIFIER)) {       System.out.println(file.getTitle() + ” AND ”         + file.getMimeType());       files.add(file);      }     }     return files; } private File getFilebyId(String fileId, Drive service) throws IOException {     File file = service.files().get(fileId).execute();     if (file.getExplicitlyTrashed() == null) {      return file;     }     return null; }

问:这种方法有效,但速度太慢,约30秒。

我该如何优化?例如,不要获取所有文件(仅限文件夹或只有文件)。或类似的东西。

回答

可以使用q参数和一些东西,如:

service.files().list().setQ(mimeType != ‘application/vnd.google-apps.folder and ‘Id’ in parents and trashed=false”).execute();

这将让你所有没有文件夹,而不是丢弃的文件和其母公司拥有的ID。所有在一个请求。

而顺便说一句,API不慢。

发表评论

邮箱地址不会被公开。 必填项已用*标注