You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过HTTP POST将Movidesk附件上传至Azure DevOps工作项?

解决Movidesk与Azure DevOps集成中的附件上传问题

核心问题分析

你当前的问题是:仅通过Movidesk返回的fileName和path字段无法获取文件二进制内容,导致上传到Azure DevOps的附件为空。解决思路分为两步:从Movidesk拉取附件二进制数据,再将数据正确上传到Azure DevOps。


步骤1:通过Movidesk API获取附件二进制内容

Movidesk的path字段是附件的唯一标识符,需调用其附件内容API获取二进制数据(无需本地下载):

  • API端点:GET https://api.movidesk.com/public/v1/tickets/{ticketId}/attachments/{path}/content
    • 替换{ticketId}为当前工单的ID(需从你获取attachments列表的Movidesk响应中提取)
    • 替换{path}为附件对象里的path值(比如你的示例中的7BDEA1B62A8641FF86982D0CF9F3DEC0)
  • 认证方式:在请求Query参数中添加apikey字段,值为你的Movidesk API密钥
  • n8n节点配置:
    • 添加HTTP Request节点,方法选GET
    • 响应类型设置为Binary(确保直接获取二进制文件数据)
    • 变量引用示例:URL填写https://api.movidesk.com/public/v1/tickets/{{$json.ticketId}}/attachments/{{$json.path}}/content,自动从上游节点读取工单ID和附件path

步骤2:将二进制数据上传到Azure DevOps

Azure DevOps的附件上传API要求请求体为文件二进制内容,需调整n8n节点配置:

  • API端点:POST https://dev.azure.com/{yourOrg}/{yourProject}/_apis/wit/attachments?fileName={movideskFileName}&api-version=7.1-preview.3
    • 替换{yourOrg}和{yourProject}为你的Azure DevOps组织和项目名
    • 替换{movideskFileName}为Movidesk返回的fileName(比如minhaImagem.png)
  • 认证方式:使用Basic Auth,用户名留空,密码填你的Azure DevOps个人访问令牌(PAT),需确保PAT拥有Work Items的读写权限
  • n8n节点配置:
    • 添加HTTP Request节点,方法选POST
    • 请求体类型选Binary,并选择步骤1中获取的二进制数据
    • 请求头添加Content-Type,值设为application/octet-stream(通用二进制类型,也可根据文件类型指定,比如image/png)

常见排查点

  • 确认Movidesk API密钥拥有工单附件的访问权限
  • 检查Azure DevOps PAT的权限范围,需包含Work Items (Read & Write)
  • 验证n8n节点的变量引用是否正确,确保ticketId、path、fileName参数传递无误
  • 查看Azure DevOps API响应的状态码,200/201表示上传成功,若返回错误需根据提示调整请求头或权限

内容的提问来源于stack exchange,提问作者LosinChances

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 04:56:17