pub(crate) async fn fetch_and_ingest(
url: &str,
) -> Result<UploadOutcome, FetchError>Expand description
抓取 URL → 图片字节 → 走共享入库流水线 → 返回 /uploads/... 结果。
original_filename 从 URL 路径末段推导(无则 None)。见模块头部的 SSRF 防护说明。
pub(crate) async fn fetch_and_ingest(
url: &str,
) -> Result<UploadOutcome, FetchError>抓取 URL → 图片字节 → 走共享入库流水线 → 返回 /uploads/... 结果。
original_filename 从 URL 路径末段推导(无则 None)。见模块头部的 SSRF 防护说明。