如何在Google Drive V3 API中按日期条件查询文件列表
你第二次调用drive.files.list未添加await关键字是脚本卡死的直接原因。该方法是异步方法,不加await会直接返回未完成的Promise对象,后续同步代码不会触发执行。
日期筛选的正确实现
Google Drive V3 API的q查询参数原生支持createdTime、modifiedTime两个日期字段的条件筛选,具体语法要求如下:
- 日期比较值必须为RFC3339格式的字符串,且整体用英文单引号包裹
- 支持的比较符为
>、<、>=、<=,代码中直接写入符号即可,不需要转义为HTML实体
正确示例代码如下:
// 示例:筛选目标文件夹下创建时间早于2021年10月1日的所有文件 const targetDate = new Date('2021-10-01').toISOString(); const data = await drive.files.list({ q: `'${folderId}' in parents and createdTime < '${targetDate}'`, // 可选配置:指定返回字段,不配置也不影响筛选逻辑 fields: 'files(id, name, createdTime, modifiedTime)' }); // 注意googleapis返回的文件列表在data.data层级下 console.log(data.data.files);
如果需要按修改时间筛选,直接把createdTime替换为modifiedTime即可,语法完全一致。
内容的提问来源于stack exchange,提问作者ffx292
相关产品推荐
相关产品推荐

