高级配置:profile

飞布的文件上传还支持高级配置。主要实现3个功能:匿名登录、文件限制以及文件钩子。

  • 匿名登录很简单,只需要开启即可。后续上传文件,无需登录。

  • 文件限制,支持最大文件尺寸,文件类型、文件后缀等的限制。需要注意到的是,文件数量 需要由客户端限制,该参数用于生成客户端SDK时,限制数量。

  • 文件钩子,允许用户在飞布上传文件到OSS之前和之后编写自定义逻辑,修改上传行为。

相关配置:

名称备注

匿名登录

默认情况下,需要身份验证才能上传文件。这里开启后,可支持匿名上传。

最大尺寸

10 M

设置上传文件的最大尺寸

文件数量限制

1

生成客户端SDK时会用到

文件类型

image/*,video/*

文件的媒体类型

文件后缀

gif,png

文件后缀

META

{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "postId": { "type": "string" } }, "required": [ "postId" ] }

文件的元数据,和钩子配置使用,值为JSON SCHEMA

前置钩子

将在上传到OSS之前运行,允许执行任何必需的验证以及定义存储文件的路径。

后置钩子

在上传完成或失败后运行,用来进行后置处理

操作步骤:

  1. 在文件存储面板中,选择列表项,右击点击“新建Profile”

  2. 重命名Profile名称,并填写基本设置(meta和钩子后续讲解)

使用profile,需要在上传文件的请求头中增加X-Upload-Profile字段,该字段为枚举类型,从profile中选择。

curl 'http://localhost:9991/s3/[s3-name]/upload?directory=test' \
  # 设置Profile名称,从枚举值中选择
  -H 'X-Upload-Profile: avatar' \
  -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryGB1RSwk0aZy4QW9J' \
  # 可选,根据是否开启匿名登录判断
  -H 'Cookie: user=xxx; id=xxx=; csrf=xx;' \
  -H 'accept: application/json' \
  --data-raw $'------WebKitFormBoundaryGB1RSwk0aZy4QW9J\r\nContent-Disposition: form-data; name="file"; filename="108*108.png"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundaryGB1RSwk0aZy4QW9J--\r\n' \
  --compressed

一旦开启profile,则必须要设置X-Upload-Profile,也意味着普通上传路由会失效!

最后更新于