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

Power Automate实现Forge设计自动化Task3:AppBundle上传HTTP错误解决

解决Power Automate上传Forge AppBundle时的InvalidArgument错误

问题场景

使用Power Automate实现Autodesk Forge设计自动化Task3(上传AppBundle)时,最后一步HTTP上传动作报错,错误信息如下:

<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidArgument</Code><Message>POST requires exactly one file upload per request.</Message><ArgumentName>file</ArgumentName><ArgumentValue>0</ArgumentValue><RequestId>2N9YNZ2J8M7CSDN0</RequestId><HostId>GH6fZMc9G4lqD5/VdQX3tdkTXoXRDO7Sm0qKK0jtHGLWt7PFBrki2fzhj1YKR4P4mkfG6+VMTRk=</HostId></Error>

原流程步骤:

  • HTTP - 注册AppBundle(已完成)
  • Get file Content using path - 获取ZIP文件内容(已完成)
  • Compose - 创建boundary(已完成)
  • Compose - 创建Multipart Content(已完成)
  • HTTP - 上传AppBundle(报错)

问题根源

手动拼接multipart/form-data请求体的方式存在缺陷:Power Automate中直接拼接文本+base64编码的文件内容,无法被Forge上传后端的S3存储正确识别为二进制文件流,导致服务端检测不到有效文件内容,触发file参数值为0的错误。

修正方案

放弃手动拼接Multipart内容,改用Power Automate原生的Form Data格式构建HTTP请求体,具体步骤如下:

  1. 删除冗余步骤:移除原流程中的两个Compose动作(Create Boundary和Create Multipart content),无需手动处理boundary和请求体拼接。

  2. 重新配置上传AppBundle的HTTP动作:

    • 方法:选择POST
    • URI:填写表达式 @body('Parse_JSON')?['uploadParameters']?['endpointURL']
    • Headers:仅保留必要项(可移除Cache-Control和手动设置的Content-Type,Power Automate会自动处理)
    • Body类型:选择Form Data,然后逐个添加以下字段:
      字段名称值来源表达式
      key@body('Parse_JSON')?['uploadParameters']?['formData']?['key']
      content-type@body('Parse_JSON')?['uploadParameters']?['formData']?['content-type']
      policy@body('Parse_JSON')?['uploadParameters']?['formData']?['policy']
      success_action_status@body('Parse_JSON')?['uploadParameters']?['formData']?['success_action_status']
      success_action_redirect@body('Parse_JSON')?['uploadParameters']?['formData']?['success_action_redirect']
      x-amz-signature@body('Parse_JSON')?['uploadParameters']?['formData']?['x-amz-signature']
      x-amz-credential@body('Parse_JSON')?['uploadParameters']?['formData']?['x-amz-credential']
      x-amz-algorithm@body('Parse_JSON')?['uploadParameters']?['formData']?['x-amz-algorithm']
      x-amz-date@body('Parse_JSON')?['uploadParameters']?['formData']?['x-amz-date']
      x-amz-server-side-encryption@body('Parse_JSON')?['uploadParameters']?['formData']?['x-amz-server-side-encryption']
      x-amz-security-token@body('Parse_JSON')?['uploadParameters']?['formData']?['x-amz-security-token']
      file选择File content,关联Get file content using path的输出;文件名填写你的ZIP文件名(如ListLayers.zip)

原理说明

Power Automate的Form Data会自动处理:

  • 生成合法的boundary分隔符
  • 正确编码二进制文件内容
  • 自动设置符合规范的Content-Type头

完全匹配教程中curl命令的上传逻辑,确保S3能正确识别文件内容,解决InvalidArgument错误。

验证方法

运行修正后的流程,若HTTP动作返回201 Created或200 OK状态码,说明上传成功。可登录Forge开发者后台,查看AppBundle的状态是否为Uploaded。

内容的提问来源于stack exchange,提问作者AI-DataDrivenPowerAutomation

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:17:06