GitHub user dosubot[bot] added a comment to the discussion: GDrive list 
weirdness

<!-- Greeting -->
Hi @funlennysub! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the 
opendal team.

<!-- Answer -->
The slow listing performance with OpenDAL's GDrive backend is due to how it 
resolves file paths: every path lookup triggers a network request to Google 
Drive unless it's already cached. For large directories, this results in 
hundreds of sequential API calls, which explains the long wait times compared 
to the raw API, which can fetch everything in a single call with a custom query 
and page size. OpenDAL's GDrive backend currently fetches files in fixed pages 
of 100 and does not honor `.limit()` or `OpArgs`—these options are ignored for 
GDrive listings right now, regardless of what you set in your code 
([source](https://github.com/apache/opendal/blob/27d5677d4526519313cbce00cd28f8fbcc099642/core/src/services/gdrive/lister.rs)).

For shared folders not owned by you, OpenDAL can't resolve the folder ID by 
name and doesn't include logic to traverse or list files from `sharedWithMe` 
folders. This is a known limitation: the backend assumes all paths are in your 
own drive and doesn't handle shared folders unless you already know the folder 
ID 
([source](https://github.com/apache/opendal/blob/27d5677d4526519313cbce00cd28f8fbcc099642/core/src/services/gdrive/core.rs)).
 The raw API works here because you can directly query by parent ID, but 
OpenDAL's abstraction doesn't expose this flexibility.

There are ongoing discussions and some recent changes to listing APIs in 
OpenDAL, but as of now, there are no documented workarounds for these 
GDrive-specific issues. If you need fast listing or access to shared folders, 
using the raw Google Drive API directly is the most reliable approach until 
these limitations are addressed 
([source](https://github.com/apache/opendal/issues/6272)).


<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot).*

---
<sup>How did I do? 
[Good](https://app.dosu.dev/response-feedback/0b92007f-645f-4afd-ab3e-9e865825ba31?feedback_type=great_response)
 | 
[Irrelevant](https://app.dosu.dev/response-feedback/0b92007f-645f-4afd-ab3e-9e865825ba31?feedback_type=irrelevant_answer)
 | 
[Incorrect](https://app.dosu.dev/response-feedback/0b92007f-645f-4afd-ab3e-9e865825ba31?feedback_type=incorrect_sources)
 | 
[Verbose](https://app.dosu.dev/response-feedback/0b92007f-645f-4afd-ab3e-9e865825ba31?feedback_type=too_verbose)
 | 
[Hallucination](https://app.dosu.dev/response-feedback/0b92007f-645f-4afd-ab3e-9e865825ba31?feedback_type=hallucination)
 | [Report 
🐛](https://app.dosu.dev/response-feedback/0b92007f-645f-4afd-ab3e-9e865825ba31?feedback_type=bug_report)
 | 
[Other](https://app.dosu.dev/response-feedback/0b92007f-645f-4afd-ab3e-9e865825ba31?feedback_type=other)</sup>&nbsp;&nbsp;[![Join
 
Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Sh
 are on 
X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/opendal/discussions/6371)

GitHub link: 
https://github.com/apache/opendal/discussions/6371#discussioncomment-13682664

----
This is an automatically sent email for dev@opendal.apache.org.
To unsubscribe, please send an email to: dev-unsubscr...@opendal.apache.org

Reply via email to