跳至正文

流水线 ​

流水线按顺序执行处理插件。先选择处理阶段,再添加步骤;插件与流水线的关系见 理解 Picloom。

选择处理阶段 ​

阶段执行时机对图片的影响作用范围与用途
上传写入副本前处理结果作为图片保存使用该流水线的上传配置;适合统一缩放、添加水印
访问读取公开图片时只改变访问结果,不覆盖存储图片全局,包括已有图片;适合按链接参数生成缩略图
保存后图片发布后,后台执行不改写图片内容,可屏蔽或删除图片使用该流水线的上传配置;适合审核、通知

保存后审核可能在图片已经可访问后才完成,不能保证“审核通过后才首次公开”。

配置并启用 ​

首次部署不启用任何处理步骤,默认上传配置的上传和保存后流水线均为空。

上传与保存后:

  1. 打开 配置 → 流水线,创建对应阶段的流水线并命名。
  2. 添加处理步骤,填写配置并保存。
  3. 打开 配置 → 上传配置,编辑需要使用它的配置,在对应流水线字段中选择并保存。

访问: 打开 配置 → 流水线,编辑全局访问流水线,添加步骤并保存。无需绑定上传配置。

添加和排列步骤 ​

每个步骤使用一个处理插件,有独立配置;可选插件取决于其支持的阶段。步骤从前到后执行,前一步的图片处理结果交给后一步。

例如,上传流水线按“图片缩放 → 水印”排列,会先缩小图片,再按缩小后的尺寸加水印。交换顺序会连同水印一起缩小。

保存后流水线累计采用最严格的处置:删除优先于屏蔽,屏蔽优先于通过;复核步骤可明确覆盖。前一步提出屏蔽或删除后,后续步骤仍会执行,处置在本次执行结束时应用。后续步骤失败不会丢失已有的屏蔽或删除决定。

固定配置与请求参数 ​

同一个处理步骤,有时需要对所有图片使用统一规则,有时需要让每次上传或访问选择不同的处理方式。因此,步骤中区分两类设置:

设置谁来填写作用
固定配置管理员在编辑步骤时填写并保存作为这个步骤的长期配置
请求参数上传者随上传请求提交,或访问者加在图片链接中只对这一次请求生效,不修改已保存的步骤配置

请求参数需要管理员在步骤中逐项启用,才能传给插件。 启用参数只是允许请求方传值,并不是给它设置一个固定值。

例如,在上传流水线中添加 图片处理,将固定配置的宽度设为 1600。其中,请求参数 w 也表示宽度:

步骤是否启用 w本次上传是否传入 w实际使用的宽度
否不传,或传入任意值1600,请求中的 w 被忽略
是不传1600,沿用固定配置
是传入 800800,本次覆盖固定配置

上传时,请求参数放在上传 API 的 params 字段中。例如,使用 POST /api/files 上传图片时,在同一个 multipart/form-data 请求中提交:

字段示例值
profileId上传配置的 ID
file图片文件
params{"w":800},以 JSON 字符串填写

w 需要在该上传配置所用的图片处理步骤中启用;仅在 params 中填写,不会自动启用它。上述宽度是缩放目标,传入的值需通过类型、数值和资源限制校验。

访问时则把参数放在公开链接后,例如 ?w=320。要使它生效,需在全局访问流水线的图片处理步骤中启用 w;上传步骤启用的参数不会自动开放给访问步骤。图片处理插件在访问阶段不提供固定宽高,未传缩放或格式等处理参数时不做处理。

以上覆盖规则是图片处理插件的行为,其他插件以各自说明为准。请求参数按步骤启用;多个步骤启用同名参数时会各自收到该值,保存后步骤不接受请求参数。传值方式见 HTTP API,访问参数见 图片处理插件。

不适用与执行失败 ​

上传和访问步骤可以设置“不适用”时的行为。例如,使用图片处理插件缩放 GIF 或 SVG 时,会判为不适用。

选择行为适用需求
跳过保留当前图片,继续下一步允许不支持的图片保持原样
中止终止本次上传或访问并报错必须完成该处理,例如不能漏加水印

这个选项不处理网络错误、无效参数等执行异常。执行失败的影响取决于阶段:

  • 上传: 本次上传失败,不发布图片。
  • 访问: 本次访问失败,存储图片不变。
  • 保存后: 记录后台任务错误并保留已完成步骤的结果。已有屏蔽或删除决定会生效,任务不再自动重试;否则,可重试的错误在次数限制内自动重试。结果可在图片详情中查看。

修改后何时生效 ​

  • 上传和保存后流水线可被多个上传配置共用,修改会影响所有引用它的配置。
  • 上传流水线只处理后续上传。删除水印步骤不会移除已保存图片中的水印。
  • 全局访问流水线影响后续公开访问,包括已有图片;客户端已缓存的内容仍可能显示旧结果。
  • 保存后流水线不会自动重跑已完成的任务;排队或重试的任务执行时会读取当前步骤。

具体操作见 上传水印、访问缩略图 和 内容审核。

文档随 main 分支维护;部署与升级请核对产物版本及兼容说明。