使用curl向GitLab指定Release资产上传Zip包后无法显示,求排查
问题原因及解决方法
你当前用的/uploads接口是GitLab的项目通用文件上传接口,上传的文件只会存到项目的通用存储里,不会自动关联到指定Release的资产列表中,这就是为什么你在Release页面看不到文件的原因。
要把文件作为Release的资产上传,得用专门的Release资产接口,分两种场景操作:
场景1:给已存在的Release添加资产
使用该接口需要指定目标Release的标签名(或Release ID):
curl --request POST \ --header "PRIVATE-TOKEN: <你的令牌>" \ --form "file=@DemoFile.zip" \ "https://my.gitlab.com/api/v4/projects/<你的项目ID>/releases/<Release标签名>/assets/links"
注意:将
<Release标签名>替换为你创建Release时使用的标签(比如v1.0.0)
场景2:创建Release时直接关联资产
如果是刚创建Release,也可以在创建阶段直接附带资产,这里可以复用你之前通过/uploads接口得到的文件完整URL:
curl --request POST \ --header "PRIVATE-TOKEN: <你的令牌>" \ --header "Content-Type: application/json" \ --data '{ "name": "Release名称", "tag_name": "v1.0.0", "assets": { "links": [ { "name": "DemoFile.zip", "url": "https://my.gitlab.com/myName/myProjectName/uploads/<之前上传得到的随机字符串>/demoFile.zip" } ] } }' \ "https://my.gitlab.com/api/v4/projects/<你的项目ID>/releases"
执行完对应命令后,刷新Release页面就能在资产列表里看到DemoFile.zip了。
内容的提问来源于stack exchange,提问作者Willy
相关产品推荐
相关产品推荐

