如何通过Nexus PRO 3.38.1-01 API获取指定目录最新资产名称
解决Nexus PRO API获取指定目录最新资产名称的问题
你之前用的/service/rest/v1/search/assets/download接口本身就是用来直接下载资产的,哪怕指定了accept: application/json,它也会触发文件下载,不会返回元数据——这是接口的设计逻辑,不是调用错误。
要拿到目标资产的元数据(包括文件名),得用不带/download后缀的资产搜索接口,通过参数筛选并排序得到最新上传的资产:
正确的API调用示例
curl -X GET "nexus-url/service/rest/v1/search/assets?sort=uploaded&direction=desc&repository=management&path=/rpms/test&pageSize=1" -H "accept: application/json"
参数说明:
sort=uploaded:按资产上传时间排序(如果你的资产版本号和上传时间不严格对应,用上传时间判断“最新”更准确)direction=desc:降序排列,确保返回的第一条就是最新上传的资产path=/rpms/test:指定要搜索的目录路径(注意这里用path而非你之前的group,group是针对Maven类仓库的分组字段,不适合rpm的目录结构)pageSize=1:只返回第一条结果,减少不必要的数据返回
直接提取文件名
返回的JSON数据里,资产文件名对应items[0].name字段。如果需要直接输出文件名,可以结合jq工具处理:
curl -X GET "nexus-url/service/rest/v1/search/assets?sort=uploaded&direction=desc&repository=management&path=/rpms/test&pageSize=1" -H "accept: application/json" | jq -r '.items[0].name'
执行后就能直接得到/rpms/test目录下最新上传资产的文件名。
内容的提问来源于stack exchange,提问作者Bar Vered
相关产品推荐
相关产品推荐

