跳转到主要内容

概览

存储API提供基于桶的文件存储,类似于S3。上传、下载和管理文件,支持本地和S3兼容存储后端。

标头

对于经过身份验证的函数调用:
对于管理员端点:

使用上传策略上传对象

InsForge支持两种类型的存储后端:
  1. 本地存储:文件存储在本地文件系统上。用于开发或低容量生产。
  2. S3兼容:文件存储在S3兼容对象存储上。用于高容量生产。
上传文件的步骤是:
  1. 获取上传策略
  2. 上传文件
  3. 确认上传(仅限S3)

第1步:获取上传策略

根据存储后端获取最优上传策略(直接或预签名URL)。 上传策略API根据存储后端返回最优上传方法:
  • 本地存储:直接上传到InsForge API
  • S3兼容:预签名URL用于直接上传到S3

请求正文

字段类型必需说明
filenamestring原始文件名
contentTypestring文件的MIME类型
sizeinteger文件大小(字节)

示例

响应(S3后端)

响应(本地存储)


第2步:上传文件

使用提供的方法将文件上传到指定的URL。
  • 本地存储:使用PUT请求到uploadUrl,使用multipart/form-datafile字段。
  • S3兼容:使用POST请求到uploadUrl,使用multipart/form-datafile字段。包括请求中fields对象的所有字段。

第3步:确认预签名上传(仅限S3)

确认文件已成功使用预签名URL上传到S3。

请求正文

字段类型必需说明
sizeinteger文件大小(字节)
contentTypestring文件的MIME类型
etagstring上传对象的S3 ETag

示例

响应


上传对象(已弃用)

使用特定密钥将文件上传到桶。

路径参数

参数类型说明
bucketNamestring桶的名称
objectKeystring对象密钥(可以包括/用于伪文件夹)

请求正文

multipart/form-data带有file字段。

示例

响应


使用自动生成的密钥上传(已弃用)

使用自动生成的唯一密钥上传文件。

示例

响应


使用下载策略下载对象

InsForge支持两种类型的存储后端:
  1. 本地存储:文件存储在本地文件系统上。用于开发或低容量生产。
  2. S3兼容:文件存储在S3兼容对象存储上。用于高容量生产。
下载文件的步骤是:
  1. 获取下载策略
  2. 从返回的URL下载文件

第1步:获取下载策略

根据存储后端和桶可见性获取最优下载策略(直接URL或预签名URL)。 下载策略API根据存储后端和桶可见性返回最优下载方法:
  • 本地存储:从InsForge API直接下载
  • S3兼容:S3的预签名URL。
过期时间(用于预签名URL)从桶的 可见性自动计算服务器端。端点不需要请求正文。objectKey可能包含 /(伪文件夹)——不要百分比编码分隔符。POST /api/storage/buckets/{bucketName}/objects/{objectKey}/download-strategy 在原始路径上保留为已弃用的别名,以支持较旧的SDK 版本,将在未来的主要版本中删除。迁移到GET

示例

响应(S3公开桶)

响应(S3私人桶)

第2步:下载文件

使用适当的方法从返回的URL下载文件。

下载对象(已弃用)

从桶下载文件。

示例

响应

二进制文件内容,具有适当的Content-TypeContent-Length标头。

删除对象

从桶中删除文件。

示例

响应


列出桶中的对象

列出桶中的所有对象,支持可选过滤。

查询参数

参数类型说明
prefixstring按密钥前缀过滤(例如,users/
searchstring按密钥搜索对象(部分匹配)
limitinteger返回的最大对象数(1-1000,默认值:100)
offsetinteger要跳过的对象数

示例

响应


桶管理(管理员)

列出所有桶

示例

响应

创建桶

请求正文

字段类型必需说明
bucketNamestring桶名称(字母数字、下划线、连字符)
isPublicboolean桶是否可公开访问(默认值:true)

示例

响应

更新桶

请求正文

字段类型必需说明
isPublicboolean桶是否可公开访问

示例

响应

删除桶

示例

响应


错误响应

找不到桶(404)

找不到对象(404)

无效文件(400)

桶已存在(409)