如何使用REST API将多个库上传到Artifactory存储库?

时间:2018-12-21 09:57:50

标签: maven 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

2 个答案:

答案 0 :(得分:1)

  

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

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

这里有几个问题:

  • 错误提示,您的网址格式错误。不应有/../。只需http://[artifactory URL]/[repository name]就可以了。
  • 您要给curl提供两个裸露的路径,它将其解释为应该PUT指向的两个URL。显然,这不是您的意图。第二个路径是您要上传的文件。您需要在其前面加上一个-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'

答案 1 :(得分:0)

我找出了原因。原因是因为我们的版本不是Artifactory Pro。

有人告诉我它是专业版,但确认实际安装的软件是OSS版本。