更新时间:2024-10-18 GMT+08:00
分享

上传图纸文件

功能介绍

该API用于上传一个图纸文件并对该文件执行轻量化转换。

  • 上传方式主要分为两种:单片上传和分片上传。
    • 单片上传:文件较小时可以采用该方式进行上传。
    • 分片上传:文件较大时可以采用分片上传,分片上传时分为两个阶段:初始化阶段和上传阶段。

      初始化阶段:获取已上传的分片文件信息,如果该文件未上传过,则执行文件上传初始化相关的动作,包括生成文件上传信息和文件轻量化任务信息。

      上传阶段:根据初始化阶段获取的已上传的分片文件,将未上传的分片文件进行上传即可。如果该文件是第一次上传,则需要上传全部分片;如果第一次未能成功上传全部分片,则该阶段只上传未成功上传的分片文件即可;如果该文件之前已经成功上传过,则该阶段可以直接跳过。上传时不同分片之间可以并行上传。

  • 文件类型分为两种:零件和装配体。
    • 零件:如果是零件直接上传即可。
    • 装配体:如果是装配体文件,则需要将装配体主文件以及子件打包成一个zip格式的压缩包,并且压缩包文件名必须和主文件名保存一致,否则系统无法识别主文件也就无法成功转换。如果装配体比较大采用分片上传方式时,在上传阶段必须将分片后缀名修改为.chunk格式。

URI

POST /basic/coremgr/public/api/v1/drawing/upload

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

Authorization

String

机机认证token,获取token请参考链接

表2 请求Body参数

参数

是否必选

参数类型

描述

file

Binary

文件

最小长度:1

最大长度:1073741824

id

String

文件id

最小长度:2

最大长度:64

name

String

文件名称

最小长度:2

最大长度:255

check_code

String

校验码

最小长度:2

最大长度:255

is_chunked

Boolean

是否分片:true,false

request_type

String

请求类型:init,upload

枚举值:

  • init
  • upload

chunk_total

Integer

分片总数

最小值:0

最大值:1000

chunk_index

Integer

分片索引

最小值:0

最大值:1000

source

String

来源:图纸文件上传的来源方,当配置为“temp”时,会被视为临时文件,默认超过7天时会自动删除

最小长度:1

最大长度:255

type

String

文件类型:PART,ASSEMBLY

枚举值:

  • PART
  • ASSEMBLY

main_file_name

String

装配体主文件名

最小长度:0

最大长度:255

响应参数

状态码: 200

表3 响应Body参数

参数

参数类型

描述

id

String

文件id

最小长度:36

最大长度:40

name

String

文件名称

最小长度:2

最大长度:512

status

String

上传状态: 上传中UPLOADING/上传完成SUCCESS/上传失败FAILED

枚举值:

  • UPLOADING
  • SUCCESS
  • FAILED

is_chunked

Boolean

是否分片:true,false

chunk_total

Integer

分片总数

最小值:0

最大值:1000

source

String

来源

最小长度:1

最大长度:255

type

String

文件类型:PART,ASSEMBLY

枚举值:

  • PART
  • ASSEMBLY

create_time

String

创建时间

最小长度:1

最大长度:30

update_time

String

更新时间

最小长度:0

最大长度:30

file_lightweight_task_result

FileLightweightTaskResultRspVo object

文件轻量化转换任务Vo对象

file_chunk_upload_result

Array of FileChunkUploadRspVo objects

文件分片上传响应Vo对象

数组长度:0 - 1000

表4 FileLightweightTaskResultRspVo

参数

参数类型

描述

file_id

String

文件id

最小长度:36

最大长度:40

file_name

String

文件名称

最小长度:2

最大长度:255

status

String

轻量化状态:UPLOADING,UNMOUNTED,MOUNTING,SUCCESS,FAILED

枚举值:

  • UPLOADING
  • UNMOUNTED
  • MOUNTING
  • SUCCESS
  • FAILED

failed_reason

String

失败原因

最小长度:0

最大长度:500

task_id

String

轻量化任务id

最小长度:1

最大长度:40

create_time

String

创建时间

最小长度:1

最大长度:30

update_time

String

更新时间

最小长度:0

最大长度:30

lightweight_file_path

String

轻量化文件路径

最小长度:0

最大长度:500

表5 FileChunkUploadRspVo

参数

参数类型

描述

chunk_id

String

文件分片id

最小长度:36

最大长度:40

chunk_status

String

上传状态: 上传中UPLOADING/上传完成SUCCESS/上传失败FAILED

枚举值:

  • UPLOADING
  • SUCCESS
  • FAILED

chunk_index

Integer

分片索引

最小值:0

最大值:1000

create_time

String

创建时间

最小长度:1

最大长度:30

update_time

String

更新时间

最小长度:0

最大长度:30

状态码: 400

表6 响应Body参数

参数

参数类型

描述

error_code

String

错误码

最小长度:8

最大长度:36

error_msg

String

错误描述

最小长度:2

最大长度:512

请求示例

  • 零件上传-单片上传
    /basic/coremgr/public/api/v1/drawing/upload
    
    {
      "name" : "4903N12.STEP",
      "check_code" : "fefeb94f12c7d604c4b2c9570ac847864a731e9a029a2d6d81021bbc3ab52343",
      "is_chunked" : false,
      "type" : "PART",
      "source" : "company name",
      "file" : "binary(二进制文件流)"
    }
  • 零件上传-分片上传(初始化阶段)
    /basic/coremgr/public/api/v1/drawing/upload
    
    {
      "name" : "010758215.stp",
      "check_code" : "b82bdd878b4788f95744eaa646a7a286ef5f4110caa703f9b521f4fbb59f48aa",
      "is_chunked" : true,
      "chunk_total" : 29,
      "type" : "PART",
      "source" : "company name",
      "request_type" : "init"
    }
  • 零件上传-分片上传(上传阶段)
    /basic/coremgr/public/api/v1/drawing/upload
    
    {
      "id" : "4f2bddfa-dee7-4858-b41c-34705e9642a3",
      "name" : "010758215.stp",
      "check_code" : "b82bdd878b4788f95744eaa646a7a286ef5f4110caa703f9b521f4fbb59f48aa",
      "is_chunked" : true,
      "type" : "PART",
      "source" : "company name",
      "request_type" : "upload",
      "chunk_total" : 29,
      "chunk_index" : 1,
      "file" : "binary(二进制文件流)"
    }
  • 装配体上传-单片上传
    /basic/coremgr/public/api/v1/drawing/upload
    
    {
      "name" : "ensamble_suicide.zip",
      "check_code" : "af101d8c580ea70cb3c05fccf871a38303fb94e6cca00ff4214aebbab674b5df",
      "is_chunked" : false,
      "type" : "ASSEMBLY",
      "main_file_name" : "ensamble_suicide.asm.1",
      "source" : "company name",
      "file" : "binary(二进制文件流)"
    }
  • 装配体上传-分片上传(初始化阶段)
    /basic/coremgr/public/api/v1/drawing/upload
    
    {
      "name" : "engine_teste_02总装.asm.1.zip",
      "check_code" : "a4a3e7aca08918a148c52ffee862add3c78ac57c204847f91151297ce211a58a",
      "is_chunked" : true,
      "chunk_total" : 25,
      "type" : "ASSEMBLY",
      "main_file_name" : "engine_teste_02总装.asm.1",
      "source" : "company name",
      "request_type" : "init"
    }
  • 装配体上传-分片上传(上传阶段)
    /basic/coremgr/public/api/v1/drawing/upload
    
    {
      "name" : "engine_teste_02总装.asm.1.zip",
      "check_code" : "a4a3e7aca08918a148c52ffee862add3c78ac57c204847f91151297ce211a58a",
      "is_chunked" : true,
      "chunk_total" : 25,
      "type" : "ASSEMBLY",
      "main_file_name" : "engine_teste_02总装.asm.1",
      "source" : "company name",
      "request_type" : "upload",
      "id" : "f1afbc15-b4db-4ff6-9bd4-80160a4f1bf8",
      "file" : "binary(二进制文件流)",
      "chunk_index" : 1
    }

响应示例

状态码:200

零件上传-单片上传

{
	"result_code": "PUB-000000",
	"result_info": "success",
	"datas": {
		"id": "ef9a97c7-6344-4118-8486-612d10fdf2e4",
		"name": "4903N12.STEP",
		"is_chunked": false,
		"chunk_total": 0,
		"status": "UPLOADING",
		"type": "PART",
		"create_time": "2024-06-21 09:22:30",
		"file_lightweight_task_result": {
			"file_id": "ef9a97c7-6344-4118-8486-612d10fdf2e4",
			"file_name": "4903N12.STEP",
			"status": "UPLOADING",
			"task_id": "3d02ef30-0e56-43c0-ab0a-5d6bca5ab7ba",
			"create_time": "2024-06-21 09:22:30"
		}
	}
}

零件上传-分片上传(初始化阶段)

{
	"result_code": "PUB-000000",
	"result_info": "success",
	"datas": {
		"id": "4f2bddfa-dee7-4858-b41c-34705e9642a3"
        "name"
		: "010758215.stp",
        "is_chunked": true,
        "chunk_total": 29,
        "status": "UPLOADING",
        "type": "PART",
        "create_time": "2024-06-21 10:18:10",
        "file_lightweight_task_result":{
        "file_id": "4f2bddfa-dee7-4858-b41c-34705e9642a3",
          "file_name": "010758215.stp",
          "status": "UPLOADING",
          "task_id": "3bfe5727-ec30-4539-bbc0-4be54fbdaee2",
          "create_time": "2024-06-21 10:18:10"
		}
	}
} 

零件上传-分片上传(上传阶段)

{
	"result_code": "PUB-000000",
	"result_info": "success",
	"datas": {
		"id": "4f2bddfa-dee7-4858-b41c-34705e9642a3",
		"name": "010758215.stp",
		"is_chunked": true,
		"chunk_total": 29,
		"status": "UPLOADING",
		"type": "PART",
		"create_time": "2024-06-21 10:18:10",
		"file_lightweight_task_result": {
			"file_id": "4f2bddfa-dee7-4858-b41c-34705e9642a3",
			"file_name": "010758215.stp",
			"status": "UPLOADING",
			"task_id": "3bfe5727-ec30-4539-bbc0-4be54fbdaee2",
			"create_time": "2024-06-21 10:18:10"
		}
	}
}

装配体-单片上传

{
	"result_code": "PUB-000000",
	"result_info": "success",
	"datas": {
		"id": "4466cc07-1b58-42d1-a0e7-748ef8f59204",
		"name": "ensamble_suicide.zip",
		"status": "UPLOADING",
		"is_chunked": false,
		"chunk_total": 0,
		"source": "company name",
		"type": "ASSEMBLY",
		"file_lightweight_task_result": {
			"file_id": "4466cc07-1b58-42d1-a0e7-748ef8f59204",
			"file_name": "ensamble_suicide.zip",
			"status": "UPLOADING",
			"task_id": "c06edf2b-a1e1-4f15-bbf3-3bfae556b8b9",
			"create_time": "2024-06-21 14:21:11"
		}
	}
}

装配体-分片上传(初始化阶段)

{
	"result_code": "PUB-000000",
	"result_info": "success",
	"datas": {
		"id": "f1afbc15-b4db-4ff6-9bd4-80160a4f1bf8",
		"name": "engine_teste_02总装.asm.1.zip",
		"status": "UPLOADING",
		"is_chunked": true,
		"chunk_total": 25,
		"source": "company name",
		"type": "ASSEMBLY",
		"create_time": "2024-06-21 14:11:16",
		"file_lightweight_task_result": {
			"file_id": "f1afbc15-b4db-4ff6-9bd4-80160a4f1bf8",
			"file_name": "engine_teste_02总装.asm.1.zip",
			"status": "UPLOADING",
			"task_id": "bd0f7935-d7a1-4d0a-8aa7-e742d80e984d",
			"create_time": "2024-06-21 14:11:16"
		}
	}
}

装配体-分片上传(上传阶段)

{
	"result_code": "PUB-000000",
	"result_info": "success",
	"datas": {
		"id": "f1afbc15-b4db-4ff6-9bd4-80160a4f1bf8",
		"name": "engine_teste_02总装.asm.1.zip",
		"status": "UPLOADING",
		"is_chunked": true,
		"chunk_total": 25,
		"source": "company name",
		"type": "ASSEMBLY",
		"create_time": "2024-06-21 14:11:16",
		"file_lightweight_task_result": {
			"file_id": "f1afbc15-b4db-4ff6-9bd4-80160a4f1bf8",
			"file_name": "engine_teste_02总装.asm.1.zip",
			"status": "UPLOADING",
			"task_id": "bd0f7935-d7a1-4d0a-8aa7-e742d80e984d",
			"create_time": "2024-06-21 14:11:16"
		}
	}
}

状态码: 400

错误响应

示例一:
{
  "error_code" : "01090001",
  "error_msg" : "系统错误,请联系管理员!"
}

示例二:
{
  "error_code" : "01099901",
  "error_msg" : "请求参数无效!"
}

示例二:
{
  "error_code" : "01099902",
  "error_msg" : "认证失败!"
}

状态码

状态码

描述

200

文件上传响应Vo对象

400

错误响应

错误码

请参见错误码

相关文档