gpt4 book ai didi

node.js - 是否可以使用 Google 的 Drive API v3 查询多个文件夹(父文件夹)?

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:43 25 4
gpt4 key购买 nike

我有一个组织方便的 Google 云端硬盘,并且其共享云端硬盘内有子文件夹。我试图解析所有或指定的文件夹并检索其内容或图像。我有用于检索给定根文件夹 ID 的所有文件夹 ID 的工作代码,并且有用于检索一个文件夹中的文件的工作代码。

我的问题是,当我尝试将查询串在一起以检索任何指定文件夹 ID 中的文件时,API 响应中会返回以下内容:files数组,尽管每个文件夹中都有图像,或者 files仅包含 文件夹 mime 类型而不包含单个图像的数组。

我一直被困在这个问题上,尝试了一切,从改变我的权限范围、不同的文件夹,到尝试将弗兰肯斯坦放在一起查询,但没有什么能让我更接近。

<小时/>

这是我的查询示例:'<folder-id-1>' in parents or '<folder-id-2>' in parents .

以及我的代码片段:

const res = await this.drive.files.list({
q: `(${encodeURIComponent(foldersChunk.map(folder => `'${folder.id}' in parents`).join(' or '))})`
});

我必须一一查询每个单独的文件夹吗?我希望找到更好的解决方案,这样我就不必向 Google 进行过多的 API 调用,也不必请求每个单独的文件夹,而不是一次在多个文件夹中获取图像,从而可能减慢用户的应用程序速度。

FWIW:我看过this post on S.O.这就是我最初产生这个想法的地方。另一位用户评论了类似的查询如何嵌套 <folder-id> in parents在一起,为他们工作,但正如我所解释的,这不适合我。

最佳答案

google-api-nodejs-client有一个错误,我可以检查尝试您的代码,因为它根本没有返回任何内容,就像您的情况一样,但后来我使用了 Try this API用于故障排除目的。这样,设置q的值参数如您的调用 ( '<folder-id-1>' in parents ) 中所示,它将按预期工作。

因此,作为解决方法,您可以使用 axios,然后按如下方式构建调用:

const queryFoldersWithAxios = async () => {
const dummyData = [{id: "folder-id-1"}, {id: "folder-id-2"}];
const params = {
q: dummyData.map(folder => `'${folder.id}' in parents`).join(' or ')
};
const headers = {
"Authorization": "Bearer <YOUR_ACCESS_TOKEN>",
"Content-Type": "application/json"
}
return await axios.get("https://www.googleapis.com/drive/v3/files", {params, headers})
}

通知

  • 您可以使用Google OAuth 2.0 Playground轻松获取用于测试的访问 token 。

  • 我在 Github 上创建了一个问题报告该错误,您可以查看 here .

关于node.js - 是否可以使用 Google 的 Drive API v3 查询多个文件夹(父文件夹)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60131503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com