飞布产品手册
官网B站Github
V1.0
V1.0
  • 序言
  • 更新日志
  • 产品简介
    • 什么是飞布?
    • 飞布的价值
    • 飞布的优势
    • 应用场景
    • 数据安全
    • 产品案例
  • 快速入门
    • 初识飞布
    • 快速上手
      • 图文版
    • 词汇概览
    • 工作原理
  • 基础-可视化开发
    • 概览
      • CLI
      • 控制台
        • 主功能区
    • 数据源
      • 数据库
        • 数据库连接
          • 高级设置
        • 数据建模
        • 数据预览
      • REST 数据源
      • GraphQL 数据源
      • 消息队列
    • API构建
      • 可视化构建
        • API规范
      • 批量新建
      • HTTP请求流程指令
      • 使用API
      • 实时查询
      • 实时推送
      • 关联查询
      • 数据缓存
      • 常见用例
    • 身份验证
      • 授权码模式
        • 身份验证(废弃)
      • 隐式模式
      • 数据权限控制
    • 身份授权
      • RBAC
        • 授权与访问控制(废弃)
      • 接口权限控制
      • 开放API
    • 文件存储
      • S3配置及使用
      • 文件管理面板
      • 高级配置:profile
  • 进阶-钩子机制
    • 钩子概览
    • 启动钩子
      • Node钩子
      • Golang钩子
      • Python钩子
      • Java钩子
    • OPERATION钩子
    • 身份验证钩子
    • graphql钩子
    • 函数钩子
      • functions(废弃)
      • proxys(废弃)
    • 文件上传钩子
    • 内部调用
  • 使用-部署上线
    • 部署运维
      • 手动部署
        • 流水线部署(废弃)
      • Docker部署
      • 飞布云
    • 接口安全
      • CSRF token 保护
      • 跨域访问
    • 客户端SDK
      • 微信小程序SDK
      • Flutter SDK
      • uniapp SDK
  • 环境准备
    • 文件存储 S3
    • 身份认证 OIDC
    • NodeJs环境
  • 实战案例
    • Fireboom Admin
      • 管理后台-refine(废弃)
    • 实时TODO LIST
    • 语音版ChatGPT
    • AI魔法师实战
    • 阿里低代码引擎
  • 路线图
  • 常见问题
  • 核心概念
    • GraphQL
    • 超图
    • 请求时序图
    • 服务端Operation
  • 二次开发
    • 钩子规范
      • 钩子规范bak
    • 模板规范
    • 自定义模板
    • 其它参考
由 GitBook 提供支持
在本页
  • S3配置
  • S3使用
  • 上传文件
  • 访问文件
  • 客户端使用
  • 快速测试
  • SDK使用

这有帮助吗?

在GitHub上编辑
  1. 基础-可视化开发
  2. 文件存储

S3配置及使用

上一页文件存储下一页文件管理面板

最后更新于1年前

这有帮助吗?

首先,我们学习如何配置S3,这里以腾讯云为例。

S3配置

S3配置主要有:

名称

tengxunyun

文件存储的名称

服务地址

cos.ap-nanjing.myqcloud.com

S3服务访问地址

APP ID

AKID0zoR4VmsnWFsIVVIsFPM6htvlPo0yw43

APP Secret

********************************

可以用环境变量存储

区域

ap-nanjing

桶名称

test-1314985928

bucket名称

开启SSL

是

开启后用HTTPS访问

使用步骤:

  1. 在文件存储面板中点击“+”,进入S3新建页

  2. 输入供应商名称及其他参数

  3. 点击测试,若测试通过,点击保存,进入详情页

S3使用

配置S3供应商后,飞布将注册上传路由,路由规则为:

http://localhost:9991/S3/[文件存储名称]/upload?directory=xxx
# 文件存储名称,不是存储桶名称。

上传文件

用户可通过该路由,上传文件至指定目录,目录由directory字段指定。

curl 'http://localhost:9991/s3/[s3-name]/upload?directory=test' \
  -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryGB1RSwk0aZy4QW9J' \
  # 必须携带cookie 或 access_token
  -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

使用该路由上传文件时,必须要登录,即携带cookie 或 access_token!

上传文件后,返回文件的相对地址,为:

[
  {
    "key": "test/49038cf2891e903b.png"
  }
]

返回结果是一个对象数组,对象只有一个字段 key,其命名规则:目录+文件的hash值(xxHash是一种非常快速的哈希算法)

访问文件

有两种方式访问上述文件:

  • 标准方式:https://桶名称.服务地址/fileKey,例如:https://test-1314985928.cos.ap-nanjing.myqcloud.com/aaaa/logotest.png

  • 其他方式:https://服务地址/桶名称/fileKey,例如:https://cos.ap-nanjing.myqcloud.com/test-1314985928/aaaa/logotest.png

对于私有桶,还需要追加临时签名才能访问:

https://桶名称.服务地址/fileKey
?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=LTAI5tGAiNbpnDb4ZghQ7MaG%2F20230720%2Foss-cn-beijing%2Fs3%2Faws4_request&X-Amz-Date=20230720T072030Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3D%22%22&X-Amz-Signature=9c09d9ba4b03180bfc524ff986b3ed8d1b785f665c4fc1e8bf99ef96160568a2

查看临时签名的生成方式,请前往 文件上传钩子

客户端使用

使用文件上传,只需要按照文件上传的接口规范,构建一个POST文件上传请求,即可将文件上传至S3 bucket中。这适用于任何可以使用HTTP请求发送FormData的环境。

快速测试

使用预览页可以快速测试文件上传,具体步骤如下。

  1. 在左侧FileUpload中选择上传路由,设置上传目录directory的值,选择文件,点击”TRY“,返回数组,fileKey

    1. 若上传时返回401错误,请登录后重试

    2. 在预览页顶部,选择OIDC供应商,点击前往登录

  2. 拼接目录,访问文件

SDK使用

除了自行按照规范构建上传接口,还可以用Fireboom生成的SDK上传文件,详情见各客户端SDK文档。

前往各S3 Provider的文档页,查看如何获取参数(前往查看)

点击顶部菜单栏的“”,前往API预览页

微信小程序:

预览
16功能介绍-飞布如何实现文件上传?
教程
文件上传