• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-flutter / 39261126285
92%

Build:
DEFAULT BRANCH: main
Ran 19 Oct 2026 01:35PM UTC
Jobs 11
Files 163
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Oct 2026 01:33PM UTC coverage: 92.037% (-0.09%) from 92.127%
39261126285

push

github

web-flow
feat(storage): resumable uploads with pause, resume and cancel (#1984)

Adds resumable uploads to `supabase_storage` over the tus 1.0 endpoint
(`/upload/resumable`), following the
`storage.file_buckets.resumable_upload` spec from supabase/sdk#278.
Linear: SDK-2276.

```dart
final upload = supabase.storage
    .from('videos')
    .resumableUpload('holiday.mp4', file);
upload.progress.listen((progress) {
  print('${progress.status.name}: ${progress.bytesUploaded}/${progress.totalBytes}');
});
upload.pause();
upload.resume();
final response = await upload.done; // or: await upload.cancel();
```

## API

- `StorageFileApi.resumableUpload(path, File)` and
`resumableUploadBinary(path, Uint8List)` start the upload and return a
`ResumableUpload` right away. Both accept `FileOptions` (content type,
cache control, upsert, metadata) and an optional signed upload `token`.
- `ResumableUpload` has `id` (a UUID), `status`, a `progress` stream
that replays the latest `ResumableUploadProgress` (status, bytes
uploaded, total bytes), `done`, and `pause()`, `resume()` and
`cancel()`.
- After a restart, `SupabaseStorageClient.resumableUploads()` lists the
recorded uploads, `resumeUpload(id, file)` and `resumeUploadBinary(id,
data)` continue one with the same file, and `discardResumableUpload(id)`
terminates and forgets one without the file.
- `ResumableUploadOptions` (on `SupabaseStorageClient` and
`StorageClientOptions`) sets the chunk size (6 MiB by default), retry
delays (`0, 3, 5, 10, 20` s), the retry time budget (120 s) and the
`ResumableUploadStorage` that holds the records.
- `UploadResponse.versionId` carries the `Supabase-Object-Version-Id` a
resumable upload reports.

## Behavior

- Every chunk is sent from the offset the server confirmed. `pause()`
aborts the chunk in flight, and `resume()` starts with a `HEAD`. A 409
on a `PATCH` re-reads the offset.
- These count as retries: transport failures, HTTP 408, 429 and 5xx, and
offset conflicts. Retries are limited... (continued)

391 of 435 new or added lines in 9 files covered. (89.89%)

2 existing lines in 1 file now uncovered.

10056 of 10926 relevant lines covered (92.04%)

5.43 hits per line

Uncovered Changes

Lines Coverage ∆ File
29
92.03
packages/supabase_storage/lib/src/resumable_upload.dart
6
40.0
-60.0% packages/supabase/lib/src/supabase_client_options.dart
4
84.48
-3.32% packages/supabase_storage/lib/src/storage_client.dart
2
71.43
packages/supabase_flutter/lib/src/auth_async_resumable_upload_storage.dart
2
98.15
-0.91% packages/supabase_storage/lib/src/types.dart
1
99.24
-0.36% packages/supabase_storage/lib/src/storage_file_api.dart

Coverage Regressions

Lines Coverage ∆ File
2
98.15
-0.91% packages/supabase_storage/lib/src/types.dart
Jobs
ID Job ID Ran Files Coverage
3 supabase_flutter - 39261126285.3 19 Oct 2026 01:35PM UTC 16
80.61
GitHub Action Run
4 supabase_typegen - 39261126285.4 19 Oct 2026 01:35PM UTC 6
96.26
GitHub Action Run
5 iceberg - 39261126285.5 19 Oct 2026 01:35PM UTC 6
71.32
GitHub Action Run
6 supabase_functions - 39261126285.6 19 Oct 2026 01:35PM UTC 4
93.28
GitHub Action Run
7 supabase_auth - 39261126285.7 19 Oct 2026 01:39PM UTC 34
93.38
GitHub Action Run
8 postgrest - 39261126285.8 19 Oct 2026 01:38PM UTC 32
94.3
GitHub Action Run
9 supabase - 39261126285.9 19 Oct 2026 01:39PM UTC 17
94.28
GitHub Action Run
10 supabase_storage - 39261126285.10 19 Oct 2026 01:37PM UTC 10
96.35
GitHub Action Run
11 supabase_realtime - 39261126285.11 19 Oct 2026 01:38PM UTC 14
90.92
GitHub Action Run
8 supabase_common - 39234881764.8 19 Oct 2026 10:06AM UTC 23
87.92
GitHub Action Run
7 yet_another_json_isolate - 39234881764.7 19 Oct 2026 10:06AM UTC 1
98.44
GitHub Action Run
Source Files on build 39261126285
  • Tree
  • List 163
  • Changed 7
  • Source Changed 7
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39261126285
  • 23f25e2b on github
  • Prev Build on main (#39246494197)
  • Next Build on main (#39264869603)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc