async fn collect_files( base: &Path, entries: &mut Vec<(PathBuf, u64, SystemTime)>, ) -> Result<()>
递归收集目录下的所有常规文件,返回路径、大小与修改时间。
跳过符号链接,避免 traversal 到 uploads/.cache/ 外部。
uploads/.cache/