copyUrlToLocalStorage method

  1. @override
Future<void> copyUrlToLocalStorage(
  1. String url,
  2. String targetName
)
override

Downloads the file at url to targetName on the local file system.

Implementation

@override
Future<void> copyUrlToLocalStorage(String url, String targetName) async {
  final resolved = await _resolve(targetName);
  final request = http.Request('GET', Uri.parse(url));
  final response = await httpClient.send(request);
  if (response.statusCode < 200 || response.statusCode >= 300) {
    await response.stream.drain<void>();
    throw HttpException(
      'HTTP ${response.statusCode} downloading $url',
      uri: Uri.parse(url),
    );
  }
  final sink = File(resolved).openWrite();
  try {
    await response.stream.pipe(sink);
  } finally {
    await sink.close();
  }
}