v/vlib/net/http/download.v

28 lines
950 B
V

// Copyright (c) 2019-2022 Alexander Medvednikov. All rights reserved.
// Use of this source code is governed by an MIT license
// that can be found in the LICENSE file.
module http
import os
// download_file retrieves a document from the URL `url`,
// and saves it in the output file path `out_file_path`.
pub fn download_file(url string, out_file_path string) ? {
$if debug_http ? {
println('http.download_file url=$url out_file_path=$out_file_path')
}
s := get(url) or { return err }
if s.status() != .ok {
return error('received http code $s.status_code')
}
$if debug_http ? {
println('http.download_file saving $s.body.len bytes')
}
os.write_file(out_file_path, s.body)?
}
// TODO: implement download_file_with_progress
// type DownloadChunkFn = fn (written int)
// type DownloadFinishedFn = fn ()
// pub fn download_file_with_progress(url string, out_file_path string, cb_chunk DownloadChunkFn, cb_finished DownloadFinishedFn)