1. 在文件夹下上传文件并创建文档
在 key 为{key}的文件夹下创建文档。
请求方式:POST
请求地址:/bosdocumentservice/{appKey}/folders/upload/{key}/files
1.1. 请求参数:
Headers:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
Authorization | string | c4570cb9ca324bc8ba7dd9d1967710ea | 是 | access_token |
PathParas:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
key | string | 5c25f513425b45ea3dr1aa435ca43ft6 | 是 | 文件夹 Key |
SearchParas:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
transactionCode | string | 3MD2XzN70VkcvbXllg7x7V | 否 | 业务事务编码 |
Body(form-data)
{
"file": "具体文件",
"sliceKey":"",//分片上传的文档key ,sliceKey为空时取file文件内容
"bosclass": "", //文档对象类
"code": "", //文档编号(如果不传,默认生成一个唯一码)
"name": "", //文档名称(如果不传,默认为上传文件的文件名)
"revision": "", //文档版本(如果不传默认为0)
"description": "", //文档描述
"gcategory": "", //文档类别
"gsource": "", //数据来源
"gmodelType": "", //模型类型
"gpriority": "", //模型解析优先级
"gmodelDB": "", //模型存放的3D模型库
"gCustAttribute": {
"xxx": "", //存放文档对象扩展属性
"yyy": ""
},
"mobile":false, //是否转3dtiles
}
1.2. 参数说明:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
code | string | 123 | 否 | 文档编号(自定义,如果不传,默认生成一个唯一码) |
name | string | doc1 | 否 | 文档名称(自定义,如果不传,默认为上传文件的文件名) |
revision | string | 1.0 | 否 | 文档版本(如果不传默认为 0) |
description | string | 文档 1 | 否 | 文档描述(自定义) |
gcategory | string | 模型 | 否 | 文档类别(自定义) |
gmodelType | string | ifc/imodel/revit | 否 | 模型类型(ifc、imodel、revit) |
gpriority | string | 1/0 | 否 | 模型解析优先级(1 表示优先解析,0 表示正常排队解析) |
gmodelDB | string | xb05cd3a35614caa85c0f8f86c58fcc1 | 否 | 模型存放的 3D 模型库,登陆接口成功后返回的 modelDB |
sliceKey | string | NULL | 否 | 分片上传的文档 key ,sliceKey 为空时取 file 文件内容 |
mobile | boolean | NULL | 否 | 是否转 3dtiles |
1.3. 正确返回:
Http Status Code:200)
{"code":"SUCCESS","message":"请求处理成功","data":"http://xxx.xxx.xxx/bosdocumentservice/h5e4ff8257dc4e86a8042097f67d2718/documents/xxxx"}
1.4. 状态码:
状态码 | code | message | data | 原因 |
---|---|---|---|---|
200 | ENTITY_WRITEPERMISSION_REQUIRED | 缺少实体对象{bosclass/key}的写权限 | NULL | 当前用户如果无该文件夹的写权限时 |
200 | ENTITY_NOTFOUND | Key 为{key}的{bosclass}实体对象不存在 | NULL | 无法找到目标文件夹 |
200 | DOCUMENT_NAME_EXIST | 当前文件夹已存在名称为{name}的文档 | NULL | 如果目标文件夹存在相同名称的文档 |
200 | OBJECT_FIELD_DATATYPE_WRONG | XXX 属性数据类型错误 | NULL | 当字段数据类型错误时 |
200 | ENTITY_NAME_INVALID | 实体对象 name 属性值无效 | NULL | 当文档 name 或文件 name 包含※时 |
200 | DATABASE_NOT_RELATED | 3D 库{gmodelDB}未与当前应用关联 | NULL | gmodelDB 对应的 3D 库未与当前 BOS 应用关联 |
200 | NULL | NULL | NULL | 根据 BOS3D 返回错误消息进行返回 |
1.5. 注意事项:
1、 gmodelDB 必填,不可为空。
2、 用户必须有该文件夹的写权限。
3、 目标文件夹中是否有同名文档。
4、 如参数中 code 未传递或为空时由 code 系统随机生成,revision 未传递或为空则 revision 默认为 0。
5、 如果 sliceKey 存在,且对应分片文件块均存在,读取对应分片文件块,合并成完整文件保存至文件服务器。
6、 如果 sliceKey 为空,先上传 file 至文件服务器。
7、 创建 documents 记录,然后创建 document 与 file 的关系。
8、 创建 document 与目标文件夹的关联。
9、 更新文档所属所有上层文件夹的 size 属性。
10、如设置 gmodelType 属性值为 ifc、imodel、revit 三者之一(不区分大小写),则在上传文件到 BOSFoundation 后需将文件上传至 BOS3D 服务器并调用解析服务,并在 BOSFoundation 中记录 BOS3D 中该文件的 3dFileKey、modelKey。
11、gpriority 选填,表示解析优先级,默认为 0,此时按队列顺序解析;如需优先解析,可设置为 1,此时插入到当前解析队列最前端,优先解析。