上传文件并关联工作项 - CreateIpdProjectIssueAttachment
功能介绍
需要给IPD项目下的工作项上传附件时,可调用此接口。用户可以通过项目ID和工作项ID,传入需要关联的文件,给该工作项关联附件。
调用方法
请参见如何调用API。
授权信息
账号根用户具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备如下身份策略权限,更多的权限说明请参见权限和授权项。
URI
POST /v1/ipdprojectservice/projects/{project_id}/issues/{issue_id}/attachments/upload
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| attachment | 是 | File | 参数解释: 附件。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
响应参数
状态码:200
| 参数 | 参数类型 | 描述 |
|---|---|---|
| status | String | 参数解释: 返回状态。 取值范围: |
| message | String | 参数解释: 失败信息。 取值范围: 不涉及。 |
| result | Array of AttachmentVoExt objects | 参数解释: 附件上传信息。数组元素为AttachmentVoExt对象。 取值范围: 0~100个元素,每个元素为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 | 参数解释: 类别。 取值范围: |
| category | String | 参数解释: 元数据类型。 取值范围: |
| 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 | 参数解释: 是否已经删除。 取值范围: |
| filesize | Long | 参数解释: 文件大小,单位为Byte。 取值范围: 0~104857600(即0~100MB)。 |
| title | String | 参数解释: 服务器上实际名称。 取值范围: 32~128个字符。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| 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
| 参数 | 参数类型 | 描述 |
|---|---|---|
| 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 | 上传附件失败的响应,例如:无操作权限、工作项已删除等 |
错误码
请参见错误码。