Skip to content

feat: support multiple file uploads in bucket#2967

Open
premtsd-code wants to merge 3 commits intomainfrom
multiple-file-bucket
Open

feat: support multiple file uploads in bucket#2967
premtsd-code wants to merge 3 commits intomainfrom
multiple-file-bucket

Conversation

@premtsd-code
Copy link
Copy Markdown
Contributor

@premtsd-code premtsd-code commented Apr 9, 2026

Summary

  • Allow selecting and dropping multiple files at once when uploading to a storage bucket
  • Files upload in parallel with a concurrency limit of 5 to avoid overwhelming browser/server
  • Drag-and-drop multiple files directly onto the bucket file list page for quick uploads
  • Custom file ID option only shown when a single file is selected
  • Wizard title and notification messages adapt to file count

Test plan

  • Navigate to a bucket → click "Create file" → select multiple files via file picker → verify all upload and appear in list
  • Navigate to a bucket → drag and drop multiple files onto the file list → verify all upload
  • Upload > 5 files → verify concurrency is capped (only ~5 active at a time in network tab)
  • Verify upload progress box shows all files with correct status

Before:
image

After:
image

image

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-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 9, 2026

Greptile Summary

This PR extends storage bucket file management to support multi-file selection and drag-and-drop upload, with a concurrency limit of 5 parallel uploads. All three issues flagged in the previous review thread have been resolved: failed uploads are now marked 'failed' in the store, per-file errors are surfaced in both the create wizard and the drag-drop handler, and extension validation is now performed client-side before any upload is dispatched on the drag-drop path.

Confidence Score: 5/5

Safe to merge; previous blocking issues resolved and only minor hardening suggestions remain.

All P0/P1 issues from the prior review cycle are addressed. The two remaining comments are defensive P2 suggestions (null guard and case normalisation) that do not affect the primary happy path and follow patterns already present in the codebase.

No files require special attention.

Vulnerabilities

No security concerns identified. Files are uploaded through the existing authenticated uploader store; no new auth boundaries, secrets handling, or injection vectors are introduced.

Important Files Changed

Filename Overview
src/lib/stores/uploader.ts Adds uploadFiles with a 5-slot concurrency pool; uploadFile now correctly sets status: 'failed' on rejection — previous thread concern resolved.
src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/create/+page.svelte Adds multi-file selection via multiple prop and maps files to upload; now checks failures after uploadFiles resolves; one edge-case: Array.from(files) is called without a null guard on files.
src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/+page.svelte Adds drag-and-drop handler with extension validation and failure checks; extension comparison lowercases only the filename side, not the bucket's extension list.

Reviews (3): Last reviewed commit: "refactor: move MAX_CONCURRENT_UPLOADS in..." | Re-trigger Greptile

…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
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 9, 2026

Tip:

Greploop — Automatically fix all review issues by running /greploops in Claude Code. It iterates: fix, push, re-review, repeat until 5/5 confidence.

Use the Greptile plugin for Claude Code to query reviews, search comments, and manage custom context directly from your terminal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants