文档首页/ 需求管理 CodeArts Req/ API参考/ API/ IPD附件管理/ 上传文件并关联工作项 - CreateIpdProjectIssueAttachment
更新时间:2026-09-01 GMT+08:00
分享

上传文件并关联工作项 - CreateIpdProjectIssueAttachment

功能介绍

需要给IPD项目下的工作项上传附件时,可调用此接口。用户可以通过项目ID和工作项ID,传入需要关联的文件,给该工作项关联附件。

调用方法

请参见如何调用API。

授权信息

账号根用户具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备如下身份策略权限,更多的权限说明请参见权限和授权项。

授权项

访问级别

资源类型(*为必须)

条件键

别名

依赖的授权项

codeartsreq:attachment:upload

Write

-

  • codeartsreq:Model

  • codeartsreq:ProjectId

-

-

URI

POST /v1/ipdprojectservice/projects/{project_id}/issues/{issue_id}/attachments/upload

表1 路径参数

参数

是否必选

参数类型

描述

project_id

是

String

参数解释:

项目32位ID,项目唯一标识。通过查询IPD项目列表获取,响应消息体中的id字段的值就是项目ID。

约束限制:

不涉及。

取值范围:

32个字符,由英文字母和数字组成。

默认取值:

不涉及。

issue_id

是

String

参数解释:

工作项唯一ID。可以通过查询工作项列表或者查询树状工作项接口获取,响应消息体中的id字段的值就是工作项ID。

约束限制:

不涉及。

取值范围:

18~19个字符的数字字符串。

默认取值:

不涉及。

请求参数

表2 FormData参数

参数

是否必选

参数类型

描述

attachment

是

File

参数解释:

附件。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

响应参数

状态码:200

表3 响应Body参数

参数

参数类型

描述

status

String

参数解释:

返回状态。

取值范围:

  • success:响应成功

  • error:响应失败

message

String

参数解释:

失败信息。

取值范围:

不涉及。

result

Array of AttachmentVoExt objects

参数解释:

附件上传信息。数组元素为AttachmentVoExt对象。

取值范围:

0~100个元素,每个元素为AttachmentVoExt对象。

表4 AttachmentVoExt

参数

参数类型

描述

progress

Integer

参数解释:

上传进度。

取值范围:

0~100。

id

String

参数解释:

附件ID。

取值范围:

18~19个字符的数字字符串。

workitem_id

String

参数解释:

工作项ID。

取值范围:

18~19个字符的数字字符串。

store_filename

String

参数解释:

文件名。

取值范围:

0~256个字符。

associate_type

String

参数解释:

关联类型。

取值范围:

不涉及。

disk_directory

String

参数解释:

附件在服务器上的相对存储路径。

取值范围:

0~1024个字符。

type

String

参数解释:

类别。

取值范围:

  • attachment:标识元数据类型为附件。

category

String

参数解释:

元数据类型。

取值范围:

  • Attachment:标识元数据类型为附件。

issue_category

String

参数解释:

工作项类型。

取值范围:

0~32个字符。

status

String

参数解释:

附件状态。

取值范围:

0~32个字符。

description

String

参数解释:

附件描述。

取值范围:

不涉及。

modified_by

UserCommonVO object

修改人信息。

created_by

UserCommonVO object

创建人信息。

domain_id

String

参数解释:

项目空间ID。

取值范围:

18~19个字符的数字字符串。

attachment_type

String

参数解释:

文件类型。

取值范围:

0~32个字符。

created_date

String

参数解释:

创建时间戳。

取值范围:

13~19个字符。

storage_service

String

参数解释:

处理附件的后台服务名。

取值范围:

0~32个字符。

storage_id

String

参数解释:

数据库中使用的存储ID。

取值范围:

0~32个字符。

delete_flag

Boolean

参数解释:

是否已经删除。

取值范围:

  • false:未删除。

  • true:已删除。

filesize

Long

参数解释:

文件大小,单位为Byte。

取值范围:

0~104857600(即0~100MB)。

title

String

参数解释:

服务器上实际名称。

取值范围:

32~128个字符。

表5 UserCommonVO

参数

参数类型

描述

user_id

String

参数解释:

用户ID。

取值范围:

不涉及。

user_num_id

Integer

参数解释:

用户短ID。

取值范围:

不涉及。

user_name

String

参数解释:

用户名称。

取值范围:

不涉及。

domain_id

String

参数解释:

用户所属域ID。

取值范围:

不涉及。

domain_name

String

参数解释:

租户名称。

取值范围:

不涉及。

nick_name

String

参数解释:

用户昵称。

取值范围:

不涉及。

role_id

String

参数解释:

角色ID,用户在项目中具有多个角色时用英文逗号分隔。

取值范围:

不涉及。

role_name

String

参数解释:

用户角色名称,多个角色用英文逗号分隔。

取值范围:

不涉及。

image_id

String

参数解释:

用户头像。

取值范围:

不涉及。

region

String

参数解释:

用户所属区域。

取值范围:

不涉及。

watcher

Integer

参数解释:

观察者。

取值范围:

不涉及。

opinion

String

参数解释:

评审信息。

取值范围:

不涉及。

description

String

参数解释:

描述。

取值范围:

不涉及。

owner

String

参数解释:

当前处理人。

取值范围:

不涉及。

ccbId

String

参数解释:

评审对象ID。

取值范围:

不涉及。

status

Integer

参数解释:

状态。

取值范围:

不涉及。

has_removed

String

参数解释:

用户是否已移出项目。

取值范围:

不涉及。

状态码:400

表6 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码。

取值范围:

不涉及。

error_msg

String

参数解释:

错误描述,对error_code的补充解释。

取值范围:

不涉及。

请求示例

假设项目ID为gdbdf969b32694524a949b5ef6b3e124a,工作项ID为956239067176935400,给该工作项上传一个名为"demo.PNG"的图片附件,示例如下:

POST https://{endpoint}/v1/ipdprojectservice/projects/gdbdf969b32694524a949b5ef6b3e124a/issues/956239067176935400/attachments/upload

------WebKitFormBoundary1kuNerRnRVVybt65
Content-Disposition: form-data; name="attachment"; filename="demo.PNG"
Content-Type: image/png

响应示例

状态码:200

上传附件成功的响应。

{
  "status" : "success",
  "message" : "",
  "result" : [ {
    "progress" : 100,
    "id" : "1212813884362502144",
    "workitem_id" : "1212811957668290561",
    "associate_type" : null,
    "disk_directory" : "/projects/687a0637cf814b65b77b3e781af19ab2/attachments/6b570776a30844e7b6361f00c2a1a5bf.xlsx",
    "filesize" : "36449",
    "store_filename" : "TTT.xlsx",
    "title" : "6b570776a30844e7b6361f00c2a1a5bf.xlsx",
    "type" : "attachment",
    "category" : "Attachment",
    "issue_category" : null,
    "status" : null,
    "description" : null,
    "modified_by" : {
      "watcher" : null,
      "user_id" : "fcb28511450247ffbf78071035f9543c",
      "user_num_id" : 13369,
      "user_name" : "CodeArtsReq_GA2_MAX_Items",
      "domain_id" : "cdf72eb7297642da8c4b0dffe4f4f14b",
      "domain_name" : "CodeArtsReq_Test",
      "nick_name" : "CodeArtsReq_GA2_MAX_Items",
      "role_id" : null,
      "role_name" : null,
      "image_id" : null,
      "region" : null,
      "opinion" : null,
      "description" : null,
      "owner" : null,
      "ccbId" : null,
      "status" : 1,
      "has_removed" : null
    },
    "created_by" : {
      "watcher" : null,
      "user_id" : "fcb28511450247ffbf78071035f9543c",
      "user_num_id" : 13369,
      "user_name" : "CodeArtsReq_GA2_MAX_Items",
      "domain_id" : "cdf72eb7297642da8c4b0dffe4f4f14b",
      "domain_name" : "CodeArtsReq_Test",
      "nick_name" : "CodeArtsReq_GA2_MAX_Items",
      "role_id" : null,
      "role_name" : null,
      "image_id" : null,
      "region" : null,
      "opinion" : null,
      "description" : null,
      "owner" : null,
      "ccbId" : null,
      "status" : 1,
      "has_removed" : null
    },
    "domain_id" : "1212810843328520193",
    "attachment_type" : "xlsx",
    "created_date" : "1767086963022",
    "storage_service" : "IPDProjectService",
    "storage_id" : "6b570776a30844e7b6361f00c2a1a5bf",
    "delete_flag" : false
  } ]
}

状态码:400

上传附件失败的响应,例如:无操作权限、工作项已删除等

{
  "error_code" : "PM.02175145",
  "error_msg" : "工作项已删除"
}

状态码

状态码

描述

200

上传附件成功的响应。

400

上传附件失败的响应,例如:无操作权限、工作项已删除等

错误码

请参见错误码。

相关文档