Skip to main content

Module attachments

Module attachments 

Source
Expand description

附件的存储与下载:响应里只列 {id, format, bytes, hash},内容用 GET /v2/attachments/{id} 取。

  • 保留期与结果相同(crate::jobs::JOB_TTL,任务结果的保留期);每次再出现同一内容就续期。
  • 内容寻址(id 是 SHA-256 前缀加扩展名),同一内容只存一份。
  • 占用有上限:内存预算(pagesift_net::resources::budget)的 δ,超出时先淘汰最早过期的。
  • 先存在进程内存里。服务开了任务持久化(有存储)时同时写进存储(HTTP API;MCP 只用内存),内存里淘汰了、 或者服务重启了,下载接口从存储里取,到期前链接一直有效;0.90 只存内存,重启或被新图片挤掉后 链接就 404,而任务结果还在。到期的在启动时和下次访问时从存储删掉。
  • 有温备时(网关的任务镜像),附件的写入和删除同任务记录一样复制到温备,快照里也带着; 单个附件超过一条复制记录的上限(帧上限的一半,crate::JobLog::max_op)时只存本地、记警告, 温备接管后这个附件的链接 404。
  • 没有存储时只在内存里:重启后没了,内存满了先淘汰最早过期的(易失缓存,不是可靠交付)。
  • 下载接口和其他抓取接口一样在鉴权之后;id 是 128 位哈希前缀,猜不到。

Functions§

get
取一个附件:(内容,MIME 类型)。过期或不存在时为 None。
keep
记下文档里的附件内容(没有内容的跳过);有 disk(任务持久化的存储)时也写进去。