From: sigoden Date: Thu, 20 Mar 2025 00:46:26 +0000 (+0800) Subject: feat: tolerate the absence of mtime (#559) X-Git-Url: https://git.ozva.co.uk/?a=commitdiff_plain;h=4fbdec2878343267f374cbe461302476ab82f8cd;p=ozva-cloud feat: tolerate the absence of mtime (#559) --- diff --git a/src/server.rs b/src/server.rs index 3f75b16..8e50bc3 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1394,7 +1394,10 @@ impl Server { (true, false) => PathType::SymlinkFile, (false, false) => PathType::File, }; - let mtime = to_timestamp(&meta.modified()?); + let mtime = match meta.modified().ok().or_else(|| meta.created().ok()) { + Some(v) => to_timestamp(&v), + None => 0, + }; let size = match path_type { PathType::Dir | PathType::SymlinkDir => { let mut count = 0; @@ -1690,7 +1693,7 @@ async fn zip_dir( } fn extract_cache_headers(meta: &Metadata) -> Option<(ETag, LastModified)> { - let mtime = meta.modified().ok()?; + let mtime = meta.modified().ok().or_else(|| meta.created().ok())?; let timestamp = to_timestamp(&mtime); let size = meta.len(); let etag = format!(r#""{timestamp}-{size}""#).parse::().ok()?;