diff --git a/crates/bili_sync/src/downloader.rs b/crates/bili_sync/src/downloader.rs index 34e721d..8909c43 100644 --- a/crates/bili_sync/src/downloader.rs +++ b/crates/bili_sync/src/downloader.rs @@ -5,7 +5,7 @@ use anyhow::{bail, ensure, Result}; use futures::StreamExt; use reqwest::Method; use tokio::fs::{self, File}; -use tokio::io::{self, AsyncWriteExt}; +use tokio::io::AsyncWriteExt; use crate::bilibili::Client; pub struct Downloader { @@ -26,16 +26,13 @@ impl Downloader { } let mut file = File::create(path).await?; let resp = self.client.request(Method::GET, url, None).send().await?; - let expected = resp.content_length().unwrap_or_else(|| { - warn!("content length is missing, fallback to 0"); - 0 - }); + let expected = resp.content_length().unwrap_or_default(); let mut received = 0u64; let mut stream = resp.bytes_stream(); while let Some(bytes) = stream.next().await { let bytes = bytes?; received += bytes.len() as u64; - io::copy(&mut bytes.as_ref(), &mut file).await?; + file.write_all(&bytes).await?; } file.flush().await?; ensure!(