文件上传‑个人空间
使用身份:普通业务用户个人 Token,该用户为场景 1 同步的员工账号。
业务背景:集成开发方需要将本地模型 / 图纸文件上传到 企业看图当前登录用户的【我的个人空间】,上传完成之后可做预览、分享操作。
前置条件:用户账号已同步 企业看图;拿到该用户 integrationId;本地待上传文件存在。
详细调用流程
- 获取该普通用户的个人 access_token:
POST /auth/oauth2/token,grant_type=mobile,mobile=INTEGRATION@{该用户integrationId},缓存 access_token、refresh_token。
- 获取 OSS 预签名上传地址(本接口特殊:不需要 token,不需要公共 Header) 接口:
POST /dms/common/oss/uploadUrl- Content‑Type=json;无 Authorization、无公共 Header;
- Body 入参:
- objectName:文件名必须携带后缀,如
底座.prt; - category:
entMySpace(个人空间);
- objectName:文件名必须携带后缀,如
- 返回结果:
uploadUrl(实际 PUT 上传二进制的地址)、relativePath(元信息同步接口必填参数,必须原样保存)。
二进制 PUT 上传文件 使用 PUT 请求,把本地文件字节流直接提交给返回的 uploadUrl;Content‑Type 设置为application/octet‑stream;
HTTP 200 代表文件已经成功传到 SView 后端存储;HTTP 非 200 视为上传失败。
- 同步文件元信息(落库,文件正式在 SView 系统可见) 接口:
POST /login‑register/open‑api/documents/sync‑file‑meta- Header:
Bearer {access_token}+ 全套公共 Header,json; - Body 必填参数:
- fileMd5:本地文件 md5;
- fileSize:文件字节大小;
- originalFilename:页面展示给用户看的文件名;
- fileName:存储真实文件名,不能包含非法特殊字符;
- dir:上一步获取的
relativePath原样传入; - pfolderId:父文件夹 ID,根目录填
"0"; - fileScope:
personal代表个人空间,不需要传 projectCode; - autoUpgrade:
y开启同名文件自动升版,n关闭; - uploadStatus:
0代表上传成功;
- 成功返回
fileId,SView 系统内部唯一文件 ID,后续预览、解压、分享全部依赖这个 ID。
- Header:
集成开发方留存关键数据
fileId,SView 内部文件唯一标识。
高频踩坑说明
- 获取上传链接接口带上 token、公共 Header,接口报错;
- fileName 字段包含特殊符号,同步元信息业务报错;
- 上传 oss 成功,但是忘记调用 sync‑file‑meta,文件在 SView 页面看不到。