For the complete documentation index, see llms.txt. This page is also available as Markdown.

文件上传钩子

我们已经学习过如何上传文件,今天我们学习文件上传的2个钩子。

首先,我们看下文件上传的时序图。

它涉及4部分,客户端、飞布服务、钩子服务和OSS服务。

  1. 客户端上传文件到飞布服务

  2. 飞布服务调用前置钩子,对文件进行处理或校验,并返回文件名或错误信息。

  3. 飞布上传文件到OSS服务

  4. 飞布调用后置钩子,处理文件上传错误或存储上传成功的文件信息。

  5. 将文件名或错误信息返还给客户端,

前置钩子

preUpload 钩子又名文件上传前置钩子,在文件上传到OSS前执行,主要用例:

  • 改变文件的存储路径

  • 或校验文件格式是否合法

后置钩子

postUpload 钩子又名文件上传后置钩子,在文件上传到OSS后执行,主要用例:

  • 上传成功或失败后发送消息通知

  • 或存储文件的URL到数据库

文件元数据meta

上述两个钩子,都包含一个特殊入参:meta 文件元数据

其用途是在上传文件的同时,额外补充业务信息。

使用方式如下:

1,设置meta

在meta中填入JSON对象的json schema描述,限制元数据的格式。

jsonschema比较复杂,可以利用工具自动生成。例如,若想在上传图片的同时也附带图片所属的文章id,其:

JSON DATA为:

JSON SCHEMA为:

由于Fireboom兼容的json schema版本较低,要手工删除第9行:additionproperties字段。

2,上传文件

在调用上传接口时,在请求头中设置x-meatadata为对应的JSON data。

3,使用钩子

后续可以在钩子中使用 meta。Meta对象按照json schema定义。

临时签名

公开可读的bucket拿到路径后就能访问,但如果是私有bucket则需要临时签名才能访问。

如图,文件2.jpeg,需要追加上述后缀(临时签名),才能访问。

最后更新于