S3配置及使用

首先,我们学习如何配置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. 前往各S3 Provider的文档页,查看如何获取参数(前往查看教程

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

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

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. 点击顶部菜单栏的“预览”,前往API预览页

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

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

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

  3. 拼接目录,访问文件

SDK使用

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

最后更新于