如何使用 REST API 更新工件中的项目属性

How to update the properties of an item in the artifactory using REST API

我正在尝试更新工件的 属性(在我的例子中是示例文本文件)

我尝试了 API https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-UpdateItemProperties

这是我尝试过的:

curl -X PATCH -uadmin:password -H '"props":{"ccs_x1_version": "7.7.7.7"}' "http://XXXXXXXXX:8081/artifactory/maven-dev-local/com/test/sbom/2.0.0-SNAPSHOT/sbom-2.0.0-20180704.094719-1.txt"

但没有成功,因为命令 returns 什么都没有,谁能帮我找出正确的用法。

您似乎缺少使用 UpdateItemProperties 的 API 端点。您还将格式错误的数据 JSON 作为 header 而不是数据发送。

您需要添加端点:/api/metadata/ 并将您的数据重新格式化为正确的 JSON。

{ "props" : { "ccs_x1_version": "7.7.7.7" } }

根据link提供的:

:6.1.0

安全性:需要特权用户(需要注释授权)

用法: PATCH /api/metadata/{repoKey}/{itemPath}?[&recursive=1]

产生:application/json

示例用法:

PATCH /api/metadata/libs-release-local/org/acme?[recursive=1] { "props":{ "newKey": "newValue", "existingKey": "modifiedValue", "toBeRemovedKey": null } }

如果您将请求更新为 curl -X PATCH -uadmin:password -d '{"props":{"ccs_x1_version": "7.7.7.7"}}' "http://XXXXXXXXX:8081/artifactory/api/metadata/maven-dev-local/com/test/sbom/2.0.0-SNAPSHOT/sbom-2.0.0-20180704.094719-1.txt"

这也是一个新的休息端点,仅适用于最新版本的 artifactory 6.1.0。如果您是 运行 旧版本,则必须使用官方 JFrog 文档中的先前端点 (Set Item Properties)。

这是格式化的 curl -X PUT -uadmin:password "http://XXXXXXXXX:8081/artifactory/api/storage/maven-dev-local/com/test/sbom/2.0.0-SNAPSHOT/sbom-2.0.0-20180704.094719-1.txt?properties=ccs_x1_version=7.7.7.7"