Fix Supabase storage driver list
operation
#22322
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Scope
The
Driver.list
method is expected to yield all files and nested files in the storage device matching theprefix
parameter. Up until this point the Supabase storage driver only returned the folder level files and directories that matched withprefix
, effectively breaking as soon asprefix
contained a path and not just a single filename prefix (and also returning directories, which is not expected in the first place). This worked fine until the need for synching extensionsSo instead of querying the API once we need to recursively query the API multiple times to yield all files. This is what Supabase does in their CLI as well to recursively list a directory.1
What's changed:
Potential Risks / Drawbacks
None, hopefully. The increased number of API queries are sadly necessary.
Review Notes / Questions
node_modules/.directus/
directory and restart directus.Fixes #21098
Footnotes
https://github.com/supabase/cli/blob/b5e0e172e1a3a40d4d6f518490c68609941c4f41/internal/storage/ls/ls.go#L44 ↩