使用curl上传KFP v2编译的JSON流水线至Artifact Registry报错求助
Kubeflow流水线JSON文件上传至Artifact Registry的curl解决方案
错误原因分析
- 第一次报错(无效扩展名):你通过
Content-Type:application/json直接发送JSON文本内容,但Kubeflow Artifact Registry需要的是上传本地JSON文件(而非纯JSON数据),服务端无法识别这种纯数据请求的文件格式,因此报错。 - 第二次报错(缺少boundary):移除Content-Type头后,curl未自动使用正确的
multipart/form-data格式上传文件,服务端无法解析请求结构,导致提示缺少boundary。
正确curl上传命令
使用curl的-F参数(表单上传),让curl自动处理multipart/form-data格式及boundary,无需手动设置Content-Type头。命令示例:
curl -X POST \ <ARTIFACT_REGISTRY_UPLOAD_URL> \ -H "Authorization: Bearer <YOUR_AUTH_TOKEN>" \ -F "file=@data_injection_pipeline.json;type=application/json"
参数说明
<ARTIFACT_REGISTRY_UPLOAD_URL>:替换为你的Kubeflow Artifact Registry上传端点(通常类似http://<kubeflow集群域名>/pipeline/upload)<YOUR_AUTH_TOKEN>:替换为你的Kubeflow认证token(GCP环境可通过gcloud auth print-identity-token获取,其他集群根据认证方式生成)-F "file=@data_injection_pipeline.json;type=application/json":指定表单字段file上传本地的data_injection_pipeline.json文件,@表示引用本地文件,;type=application/json明确文件MIME类型,帮助服务端识别格式
额外验证步骤
- 确认token具备流水线上传权限,可通过调用Kubeflow API测试token有效性
- 核对上传URL是否正确,可从Kubeflow UI的流水线上传页面查看请求URL
内容的提问来源于stack exchange,提问作者MMM
相关产品推荐
相关产品推荐

