Google 驱动器 REST API:是否有可能获得匹配 files/list 查询的文件总数?
Google Drive REST API: is is possible to get the total number of files matching a files/list query?
由于 files/list (https://developers.google.com/drive/v2/reference/files/list) 是自动分页的,我正在寻找一种方法来分几批获取与查询匹配的所有文件(使用 while 和 nextPageToken)。我还想展示这件事的进展,但这需要知道与该查询匹配的文件总数。
从 android 项目中使用它,因此实际调用如下所示:
public static String QUERY_VIDEOS = "mimeType='video/mp4'";
FileList list = mService.files().list().setMaxResults(1000).setQ(QUERY_VIDEOS).execute()
有什么想法吗?
谢谢
恐怕不可能。我可能会建议不要使用 1000 的批量大小,因为当 501 开始时你会第一个碰壁。
为了加快速度,您可能需要研究一下这个想法。如果你有大量的文件需要被抓取,你需要像你一样按顺序翻页。 Sooo,假设您有 12,000 个文件。你能达到的最好是 12 x 1,000,其中每个请求是 3s = 36s。正如我所说,我避免了 1,000,因为它在过去给了我 501 个内部错误,所以如果您使用 100 的页面大小,那么它就是 120 x 2s = 240s。不是很好。但是,如果您对文件进行分片,则可以并行执行此操作。创建 10 个文件夹,并在文件夹之间共享文件。 (如果你想对用户隐藏它,你可以使用属性而不是文件夹)。现在您的 q= 可以包含父项。您现在可以并行触发 10 个提取,每个提取都遵循自己的页面标记。现在经过的时间是 24 秒。
由于 files/list (https://developers.google.com/drive/v2/reference/files/list) 是自动分页的,我正在寻找一种方法来分几批获取与查询匹配的所有文件(使用 while 和 nextPageToken)。我还想展示这件事的进展,但这需要知道与该查询匹配的文件总数。
从 android 项目中使用它,因此实际调用如下所示:
public static String QUERY_VIDEOS = "mimeType='video/mp4'";
FileList list = mService.files().list().setMaxResults(1000).setQ(QUERY_VIDEOS).execute()
有什么想法吗?
谢谢
恐怕不可能。我可能会建议不要使用 1000 的批量大小,因为当 501 开始时你会第一个碰壁。
为了加快速度,您可能需要研究一下这个想法。如果你有大量的文件需要被抓取,你需要像你一样按顺序翻页。 Sooo,假设您有 12,000 个文件。你能达到的最好是 12 x 1,000,其中每个请求是 3s = 36s。正如我所说,我避免了 1,000,因为它在过去给了我 501 个内部错误,所以如果您使用 100 的页面大小,那么它就是 120 x 2s = 240s。不是很好。但是,如果您对文件进行分片,则可以并行执行此操作。创建 10 个文件夹,并在文件夹之间共享文件。 (如果你想对用户隐藏它,你可以使用属性而不是文件夹)。现在您的 q= 可以包含父项。您现在可以并行触发 10 个提取,每个提取都遵循自己的页面标记。现在经过的时间是 24 秒。