How to upload large files to storage with upload progress in Flutter
Hi everyone
I’m currently building a media app with Flutter and using Supabase Storage for file uploads.
I’ve successfully implemented uploads using createSignedUploadUrl() together with Dio – this allows me to track upload progress (using onSendProgress) and works great for small to medium files.
However, there’s one major issue:
The signed upload URL is only valid for 1 minute.
When I try to upload larger videos (e.g. 200–500MB), the upload often takes longer than 1 minute, and then I get a 400 Bad Request from the server – presumably because the signed URL has expired during the upload.
⸻
My questions: 1. Is there any way to extend the expiration time of a signed upload URL beyond 1 minute? 2. Or alternatively – is there a way to perform large file uploads using the Supabase SDK with progress tracking, so I don’t need signed URLs?
Any insights, recommendations, or workarounds would be highly appreciated!
Supabase gives you the tools, documentation, and community that makes managing databases, authentication, and backend infrastructure a lot less overwhelming.