媒体访问与使用
上传、预览、复制地址与公开文章消费,区分用户身份和服务身份。
从媒体库到正文
后台媒体库支持上传、图片预览、详情与复制URL,文章编辑器可插入已登记图片。默认上传是私有,面向公开正文的图片应明确选择公开访问。
默认local适配器保存到持久化媒体目录;图片URL经平台文件访问入口读取真实字节。删除被文章或配置引用的文件会被拒绝,先移除引用。
从业务服务上传
PlatformClient上传需要发起用户的clientAccessToken及相应资源权限,不是任意服务token。SDK保留服务端边界;浏览器常规上传经应用自己的受控接口。
TypeScript
import { PlatformClient } from '@mosaic-base/platform-client';
export async function uploadImage(apiBaseUrl: string, userToken: string, buffer: Buffer, uploadId: string) {
const platform = new PlatformClient({ baseUrl: apiBaseUrl });
return platform.uploadFile(
{ buffer, mimetype: 'image/png', originalname: 'diagram.png' },
{ token: userToken, uploadId, business: 'user-media', needThumbnail: true },
);
}
// Node server only. Reuse uploadId for an explicit retry of the same bytes.
// Client uploads stay private; use contentUrl or platform.downloadFile(id, { token }).多连接与上传用途
管理员在「存储」添加连接,保存候选→测试→明确应用,再选择默认或用途规则。普通媒体、文章图片、站点品牌图和客户端私有媒体可分别路由;切换默认后历史图片仍从原连接读取。业务不提交厂商、桶或物理对象键,也无需引入云厂商浏览器SDK。
一次用户上传持有一个UUID uploadId,显式重试复用同一值。成功结果提供storageId/storageName、ready状态及认证contentUrl;私有图片通过downloadFile使用当前用户会话读取。待清理、冲突和未知结果均明确返回,不自动切换存储或重放写入。
发布后验证访问
检查公开URL返回实际图片字节和正确类型,并在匿名文章页面显示。私有媒体文件需要授权;复制路径或在正文引用都不会提升它的访问权限。