Skip to content
密信 IM · 开发文档

文件与媒体附件 ​

图片、语音、视频和文件包含消息记录与存储对象两部分。先上传获得存储标识,再发送与该对象绑定的消息;接收方使用经过授权的短效地址访问附件。

上传入口 ​

dart
final uploaded = await sdk.attachments.upload(
  selectedFilePath,
  fileName: 'project-note.pdf',
  mimeType: 'application/pdf',
);

sdk 为已连接的实例,selectedFilePath 由宿主文件选择器提供。宿主负责相册、摄像头或文件访问权限,用户完成选择后再提交上传。

上传结果包含存储标识、名称、大小、MIME 等信息。发送时沿用服务端返回的元数据,通过 UIKit 媒体入口或配套的类型化消息接口构造消息。

三步处理 ​

阶段客户端行为服务端职责
上传提交当前用户选择的文件校验、扫描、保存可信元数据
发送引用上传结果,发送媒体或文件消息校验归属与消息权限,建立绑定
访问使用授权地址读取,需要时刷新校验当前用户可见性后签发短效地址

部署时配置对象存储、文件扫描和网络入口,并设置允许的文件格式与大小。参见私有化部署。

链接失效与刷新 ​

附件链接有有效期。刷新时提供当前 IM Session,以及源消息的会话 ID、客户端消息 ID 与存储 ID,由服务端校验消息访问权限。

默认 Flutter UIKit 在授权地址失效后执行单次刷新重试。自定义页面区分地址过期与权限变化;刷新后仍返回 401/403 时结束重试并展示访问提示。

缓存与账号隔离 ​

媒体缓存使用账号范围、对象标识和变体作为稳定键,带签名的短链作为下载地址。切号时切换缓存作用域,按当前账号权限展示附件。

消息数据库、系统相册、宿主下载目录和媒体缓存分别管理。宿主按产品策略处理保存、下载、清理和退出;本地数据库加密仅覆盖数据库,附件存储保护需单独配置,详见安全配置。

接入检查 ​

在项目对象存储环境中检查短效链接刷新、上传中断、权限变化、账号切换和两端媒体播放,保证附件访问与消息状态一致。

开始构建你的通讯体验

获取授权包、完整接口资料与接入支持。

LET’S BUILD TOGETHER

聊聊你的通讯需求

联系密信团队,获取 SDK 授权、接入资料与私有化方案。

咨询内容:
客服微信mixinim
客服 QQ629900
联系邮箱mixinim@126.com

SDK 与源码按授权范围交付。此处不提供公开下载。