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

使用CURL上传文件至Perfecto失败,overwrite参数格式错误求助

排查并解决Perfecto仓库APK上传失败问题

从你遇到的错误提示和脚本代码来看,核心问题出在URL的语法错误上,咱们一步步拆解并修复:

问题分析

虚拟机返回的错误信息已经给出了明确线索:

{"errorMessage":"Failed to upload repository item - Value true) for overwrite parameter is not a valid boolean value."}

这里overwrite参数的值变成了true),明显多了个多余的右括号;另外URL里的&是HTML实体编码字符,在Shell脚本中会被当成普通字符串传递,导致服务器无法正确解析参数分隔。

修复步骤

1. 修正URL的语法错误

把URL里的两个问题点改掉:

  • 移除末尾多余的右括号)
  • 将&替换成Shell中合法的参数分隔符&

修正后的完整脚本代码如下:

# 先确保APK文件下载完成
wget -c https://example.net -O abc.apk

# 上传部分的修正代码
source="abc.apk" 
dest="abc.apk" 
securityToken="Actual Token" 
# 修正后的URL:移除多余括号,替换&为&
url="https://another.com/services/repositories/GROUP:abc/${dest}?operation=upload&securityToken=${securityToken}&overwrite=true"
curl -X POST -T "$source" "$url"

2. 验证修正效果

执行脚本前,可以先打印出URL确认格式是否正确:

echo $url

正常输出的URL应该是类似这样的(无多余括号,参数用&清晰分隔):
https://another.com/services/repositories/GROUP:abc/abc.apk?operation=upload&securityToken=Actual Token&overwrite=true

3. 额外验证点(若仍有问题)

如果修正后还是无法上传,可以检查:

  • 确认abc.apk文件是否下载完整:用ls -l abc.apk查看文件大小,或者尝试解压APK确认没有损坏
  • 确认securityToken是否正确,没有拼写错误或特殊字符(如果包含特殊字符,需要用引号包裹或进行URL编码)

错误原因说明

  1. 多余的右括号:原本URL末尾的)是手误添加的,导致overwrite参数值变成true),不符合Perfecto要求的布尔值格式(只能是true或false),所以服务器直接拒绝了请求。
  2. HTML转义字符&:&是HTML中用来表示&的转义字符,但在Shell脚本中,直接写&会被当成字符串的一部分传递给服务器,导致服务器无法正确识别参数的分隔,进而引发解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 06:52:36