FileAPIv2 - infoplus/docs GitHub Wiki
接口概述
- 通过HTTP方式存取非结构化文件
- 多文件压缩打包
- 对图片进行尺寸转换和缩略图生成(尚未实现)
- REST版文档地址:FileAPI
技术标准
类型定义
type Query {
# 查询文件元数据
meta(id: String) : File
}
type Mutation {
# 上传文件
upload(file: Upload, secure: Boolean, download: Boolean) : File!
# 删除文件
delete(id: String) : File
# 压缩一组文件,或者查询进度
archive(
# ArchivePromise的id,如果给出,则忽略input参数
id: String,
# 压缩包定义
input: ArchiveInput
): ArchivePromise!
}
type File {
# 文件UUID
id: ID
# 文件名
name: String
# 文件字节数
size: Int
# 文件类型,参考RFC2046 https://datatracker.ietf.org/doc/html/rfc2046
mime: String
# 文件下载地址
uri: String
# 创建时间
createTime: Int
# 最后修改时间
lastModified: Int
# SHA1 签名
sha1Hash: String
# 标签
tags: String
}
input ArchiveInput {
# 压缩包名称,不含扩展名
text: String!
# 格式,目前仅支持zip
format: String
# 根文件夹
root: ArchiveEntryInput!
}
# 一个文件或文件夹
input ArchiveEntryInput {
# 文件/文件夹名
# 对于文件,如果此字段不给出,使用默认文件名
# 对于文件夹,如果此字段不给出,使用当前层文件夹,不创建子文件夹
text: String
# 文件ID,此字段给出则视为文件,忽略 entries 参数
file: String
# 子文件/文件夹列表
entries: [ArchiveEntryInput!]
}
# 压缩任务返回值
type ArchivePromise {
# Archive任务ID,用于后续查询
id: ID
# 下载地址
uri: String
# 当前处理进度(0, 100),当执行完成时(100),成功会给出uri,否则给出error信息
progress: Int
# 任务执行出错后的错误信息
error: String
}
scalar Upload