首页 > 解决方案 > 如何使用 REST API 将多个库上传到 Artifactory 存储库?

问题描述

参考下面的指南,我正在尝试将库文件上传到 Artifactory 上的 Maven 存储库;但是,我有一个错误。

https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-DeployArtifactsfromArchive

我们在本地 Linux 服务器上安装了 Artifactory,并创建了一个 maven 存储库来存储 Java 应用程序构建的库。准备好是因为我们的环境不允许访问公共互联网和 jcenter。我们计划在 Jenkins 上使用 maven 配置构建作业,它从 Artifactory 存储库中获取所有必要的库。

库文件由开发团队提供。它遵循 maven 结构,因为它是从本地开发 PC 上的 Maven 导出的。

我压缩了文件,放在服务器上并点击下面的代码。

curl -u user:password -X PUT http://[artifactory URL]/../[repository name] /tmp/src/archive.zip

预期成功的文件上传到存储库。但是,我有以下错误。

{"errors" : [ {
     "status" : 403,
     "message" : ""
 }]
}curl: (3) <url> malformed

标签: mavenartifactory

解决方案


我压缩了文件,放在服务器上并点击下面的代码。

curl -u user:password -X PUT http://[artifactory URL]/../[repository name] /tmp/src/archive.zip

这里有几个问题:

  • 正如错误所示,您的 URL 格式错误。不应该有/../. 应该http://[artifactory URL]/[repository name]没问题。
  • 你给 curl 两个裸路径,它解释为它应该PUT的两个 URL。很明显,这不是您的意图。第二个路径是您要上传的文件。您需要通过在它前面加上 a 来指定它-T
  • 此调用只会将 zip 文件上传到存储库的根目录,但您希望它改为提取内容。如您链接的文档所述,如果您传递标头X-Explode-Archive: trueX-Explode-Archive-Atomic: true.

所以你的电话应该是这样的:

curl -u user:password -X PUT http://[artifactory URL]/[repository name] -T /tmp/src/archive.zip -H 'X-Explode-Archive: true'

推荐阅读