2.5 KiB
2.5 KiB
IM 文件存储切换(OSS / MinIO)
IM Server 继续提供 /v0/file/u/ 上传和 /v0/file/s/ 鉴权下载接口。客户端不直连对象存储。后台 hotgo.hg_sys_config 的 im_third_party.media_handler 是存储开关:oss 写阿里云 OSS,minio 写自建 MinIO。部署配置中的 media.use_handler 必须为 sys_config(server/meetingim.conf 已如此配置);开关在服务启动时读取,修改后滚动重启 IM Server。
后台配置
先在 hotgo 执行 IM-MinIO存储配置.sql,再通过后台填写:
| 配置 key | 值或用途 |
|---|---|
media_handler |
oss / minio,默认保留现有值 |
minio_endpoint |
https://minio.118im.com;容器内如有可达的 HTTPS 内网地址,可改用内网地址 |
minio_bucket |
xgjs,需预先创建 |
minio_region |
us-east-1 |
minio_access_key_id |
MinIO Access Key,后台敏感配置 |
minio_secret_access_key |
MinIO Secret Key,后台敏感配置 |
阿里云 OSS 的 oss_* 配置需继续保留,用于读取切换前的文件。回切 OSS 后,MinIO 的配置也需保留。新写入的 MinIO 对象在文件记录中保存为 minio://<bucket>/<key>;原有 OSS 文件位置不改。下载和清理按文件位置选择存储后端,不会因为切换开关迁移已有对象。
上线顺序
- 确认 IM Server Pod 能访问 MinIO S3 API,且
xgjs桶及访问密钥可用;不要使用 Console URL 作为 API endpoint。 - 执行配置 SQL 并在后台填写密钥;保留
media_handler=oss,发布包含 MinIO handler 的 IM Server。 - 将
media_handler改为minio,滚动重启 IM Server,在客户端做小文件上传、下载、Range 下载、删除和历史 OSS 文件下载验证。 - 回切时将
media_handler改为oss并滚动重启;已有 MinIO 文件继续从 MinIO 读取。
MinIO 对象默认按私有文件处理。示例中的直连公网 URL 只有在桶策略允许公开读取时才可访问;IM 客户端应使用服务返回的文件 URL。当前阿里云内容安全接口接受阿里云 OSS 对象参数,MinIO 文件的第三方审核任务需另行接入可用的文件提交方式,不能把 MinIO 对象直接当 OSS 对象提交。
2026-10-17:本地和测试环境的 hotgo 均已加入 MinIO 字典与配置项,凭据已分别填入数据库,media_handler 仍为 oss。MinIO 公网 S3 API 的独立上传、读取、删除冒烟测试已通过;切换后仍需从测试环境 IM Server Pod 验证完整客户端上传链路。