跳到主要内容

files.upload

上传二进制文件

  • 请求路由: files.upload
  • 交互模型: Request Channel
  • 访问限制: 无

关于 binaryId​

上传文件时,自行生成二进制资源的唯一标识,推荐使用URN格式来标识二进制资源作为指定数据的附件,按
<关联数据类型>:<关联数据标识>:<二进制资源类型>[文件后缀]
例如:
user:user1@aspiretop:avatar.png - 用户user1@aspiretop的头像图片
company:company1:attachment:license - 公司company1的营业执照附件

Web上传组件的使用示例
const handleCustomRequest = ({ file, filename, onSuccess, onError }) => {
const reader = new FileReader();
reader.onloadend = async () => {
setUploading(true);
try {
await RSocket.rc({
route: 'files.upload',
binary: {
binaryId: 'user:user1@aspiretop:avatar.png',
mimeType: 'image/png',
filename,
},
data: Buffer.from(reader.result),
});
onSuccess();
message.info('上传成功');
} catch (e) {
onError(e);
message.warn('上传失败');
} finally {
setUploading(false);
}
};
reader.readAsArrayBuffer(file);
};

<Upload accept='image/png,image/jpg' showUploadList={false} customRequest={handleCustomRequest}>
<Button type="primary" loading={uploading}>上传</Button>
</Upload>

请求​

RSocket.rc({
"route" : "files.upload",
"args" : {
"binary" : {
"binaryId" : "user:user1@aspiretop:avatar.png",
"mimeType" : "image/png",
"filename" : "pic.png"
}
},
"data" : "[二进制内容]"
});

请求参数​

名称类型必须说明
binaryObject是文件元数据
binary.binaryIdString是二进制资源标识
binary.filenameString否文件名
binary.mimeTypeString否内容MimeType, 例如: image/png, application/pdf
binary.expiresNumber否指定二进制内容的有效期,单位为:秒,过期后会被自动清理,元数据也会被删除
默认为180天,可通过系统配置修改默认有效天数
dataVaries是二进制内容Buffer

返回​

仅一个元素的数组,包含已上传的二进制内容的元数据对象

[
{
"tenantId" : "aspiretop",
"binaryId" : "user:user1@aspiretop:avatar.png",
"hash" : "EF3EF484CE401DEF68A4A96FC8D5EB5C",
"filename" : "pic.png",
"length" : 16574,
"mimeType" : "image/png",
"lastModified" : 1625703881653,
"expires" : 0
}
]

返回属性​

名称类型说明
binaryIdString二进制资源标识
hashString文件内容的MD5 Hash
filenameString文件名
lengthNumber二进制内容长度字节数
mimeTypeString内容MimeType, 例如: image/png, application/pdf
lastModifiedNumber最后更新时间戳
expiresNumber指定二进制内容的有效期,单位为:秒,过期后会被自动清理,元数据也会被删除
默认为180天,可通过系统配置修改默认有效天数
tenantIdString租户ID

下载结果模型定义