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

supabase / supabase-flutter / 29159578090 / 8
87%
main: 87%

Build:
DEFAULT BRANCH: main
Ran 11 Jul 2026 04:24PM UTC
Files 10
Run time 0s
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

11 Jul 2026 04:19PM UTC coverage: 79.31%. Remained the same
29159578090.8

push

github

web-flow
feat(storage): add downloadStream for streaming file downloads (#1580)

## Summary

Adds `StorageFileApi.downloadStream`, which returns the response body as
a lazy `Stream<Uint8List>` for memory-efficient handling of large files
instead of buffering the whole body into a `Uint8List` (as `download`
does). The request is sent when the stream is listened to, and a
non-success status surfaces as a `StorageException` on the stream before
any bytes are emitted, matching how `File.openRead` behaves.

- `downloadStream(path, {transform, queryParams, cacheNonce})` returns
`Stream<Uint8List>`
- Internal `Fetch.getStream` streaming GET, an `async*` generator marked
`@internal`
- `download` and `downloadStream` share a new private `_downloadUri`
builder (DRY)

**Outcome:** implemented
**Reference:** supabase-js `download(...).asStream()`
(`StreamDownloadBuilder`)
**Compliance matrix:** `storage.file_buckets.download_as_stream` ->
implemented

## Notes
- Idiomatic Dart choices rather than a transliteration of the JS
builder: a bare lazy `Stream<Uint8List>` (not
`Future<Stream<List<int>>>` and not a chained `asStream()` builder),
with errors delivered on the stream. `Uint8List` is used for the byte
chunks, consistent with `download`; because `Stream` is covariant it is
still usable anywhere a `Stream<List<int>>` is expected.
- Unit tests cover the streamed happy path, the transform plus
cacheNonce query, and an error status surfacing on the stream.

## Stacking
Third of three stacked PRs. Base: #1579 (listPaginated). Review and
merge #1578 then #1579 first.

253 of 319 relevant lines covered (79.31%)

4.55 hits per line

Source Files on job supabase_flutter - 29159578090.8
  • Tree
  • List 10
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 29159578090
  • 8b839a10 on github
  • Prev Job for on main (#29156955642.8)
  • Next Job for on main (#29287704963.)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc