WebDownloadService class

Web implementation of DownloadService

Supports multiple storage modes:

  • cacheApi: Cache API with Blob URLs (for models <2GB)
  • streaming: OPFS with streaming (for models >2GB)
  • none: No caching (ephemeral)

Features:

  • URL registration (cacheApi/none modes)
  • OPFS streaming download (streaming mode)
  • Progress tracking for all modes
  • Authentication token support

Design rationale:

  • Cache API mode: Fast for small models, browser handles caching
  • Streaming mode: Bypasses ArrayBuffer limits for large models
  • OPFS provides persistent storage with streaming support

Platform: Web only

Implemented types

Constructors

WebDownloadService(WebFileSystemService _fileSystem, WebJsInterop _jsInterop, BlobUrlManager _blobUrlManager, WebCacheService cacheService, {WebOPFSService? opfsService, WebStorageMode webStorageMode = WebStorageMode.cacheApi})

Properties

cacheService → WebCacheService
final
hashCode → int
The hash code for this object.
no setterinherited
opfsService → WebOPFSService?
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
webStorageMode → WebStorageMode
final

Methods

download(String url, String targetPath, {String? token, CancelToken? cancelToken}) → Future<void>
Downloads a file from URL to target path
override
downloadWithProgress(String url, String targetPath, {String? token, int maxRetries = 10, CancelToken? cancelToken, bool? foreground}) → Stream<int>
Downloads a file with progress tracking
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited