feat: support multiple file uploads in bucket#2967
Conversation
Allow selecting and dropping multiple files at once when uploading to a storage bucket. Files are uploaded in parallel with a concurrency limit of 5 to avoid overwhelming the browser and server.
Greptile SummaryThis PR adds multi-file upload support to storage buckets — both via the file picker wizard and full-page drag-and-drop — with a concurrency limit of 5 parallel uploads. All three issues flagged in prior review threads (failed-upload status tracking, silently swallowed per-file errors, missing drag-drop extension validation) have been addressed in this revision. Confidence Score: 5/5Safe to merge; all prior P1 findings are resolved and the only remaining finding is a low-priority edge case. All three previously flagged P1 issues are now fixed: failed uploads are marked in the store, per-file errors surface notifications in both the wizard and drag-drop paths, and drag-drop validates extensions before uploading. The one remaining comment is a P2 edge case (case-sensitive extension comparison) that would only affect buckets whose admins stored extensions in non-lowercase form, which is non-default Appwrite behaviour. src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/+page.svelte — minor case-sensitivity issue in the manual extension filter inside Important Files Changed
Reviews (4): Last reviewed commit: "Revert "refactor: move MAX_CONCURRENT_UP..." | Re-trigger Greptile |
src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/create/+page.svelte
Outdated
Show resolved
Hide resolved
src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/+page.svelte
Show resolved
Hide resolved
…s on drop - uploadFile now catches errors and sets status to 'failed' with error message - Both create page and drag-drop check uploadFiles results for failures and show error notifications - Drag-drop validates file extensions against bucket allowedFileExtensions before uploading, rejecting disallowed files with a notification
|
Tip: Greploop — Automatically fix all review issues by running Use the Greptile plugin for Claude Code to query reviews, search comments, and manage custom context directly from your terminal. |
Summary
Test plan
Before:

After:
