artifactory vagrant repo,在尝试下载图像时获得json或404响应

artifactory vagrant repo,在尝试下载图像时获得json或404响应,vagrant,artifactory,download,Vagrant,Artifactory,Download,一天中的好时光,我已经设置了一个artifactory的pro版本,我已经设置了一个带有1个文件的流浪者回购。然而,当我试图从artifactory获取文件时,我得到了以下响应,而不是下载文件,这是由于设置了不正确的repo布局。默认情况下,artifactory设置了一个简单的默认布局,我认为这是导致问题的原因 {"name":"vagrant-centos-base.box","description":null,"short_description":null,"versions":[]}

一天中的好时光,我已经设置了一个artifactory的pro版本,我已经设置了一个带有1个文件的流浪者回购。然而,当我试图从artifactory获取文件时,我得到了以下响应,而不是下载文件,这是由于设置了不正确的repo布局。默认情况下,artifactory设置了一个简单的默认布局,我认为这是导致问题的原因

{"name":"vagrant-centos-base.box","description":null,"short_description":null,"versions":[]}
显然,当我尝试使用vagrant up命令并指定repo/文件的url时,会出现以下错误:

bsdtar.EXE: Error opening archive: Unrecognized archive format
我强烈怀疑这是因为流浪汉下载了那个响应而不是实际的文件

我错过了什么

提前谢谢你

以下是流浪汉的输出:

Bringing machine 'webserver' up with 'virtualbox' provider...
Bringing machine 'webserver1' up with 'virtualbox' provider...
Bringing machine 'appserver' up with 'virtualbox' provider...
==> webserver: Box 'vagrant-centos-base' could not be found. Attempting to find
and install...
    webserver: Box Provider: virtualbox
    webserver: Box Version: >= 0
==> webserver: Loading metadata for box 'https://{url}/artifa
ctory/api/vagrant/B6_Vagrant/vagrant-centos-base'
    webserver: URL: https://{url}/artifactory/api/vagrant/B6_
Vagrant/vagrant-centos-base
==> webserver: Adding box 'vagrant-centos-base' (v1.0.0) for provider: virtualbo
x
    webserver: Downloading: https://{url}/B6_Vagrant/vagrant-
centos-base.box
    webserver: Progress: 0% (Rate: 0curl:/s, Estimated time remaining: --:--:--)
    webserver:
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

The requested URL returned error: 404 Not Found

正如您所看到的,现在它获得了Medataa,但由于artifactory提供了404,因此无法下载该文件。与我尝试手动操作时相同

您似乎将vagrant框上载到Artifactory,但未提供框元数据-名称、提供程序、版本。
当vagrant试图通过vagrant API下载box时,它需要一个描述图像并提供下载链接的JSON响应,例如:

{"name":"debian-current","description":null,"short_description":null,"versions":[{"version":"12","status":"active","description_html":null,"description_markdown":null,"providers":[{"name":"Provider","url":"http://localhost:8081/artifactory/local-vagrant/debian-current.box"}]}]}
vagrant box add http://myserver/B6_Vagrant/vagrant-centos-base.box --name vagrant-centos-base.box
如果缺少此元数据,则vagrant不知道如何继续。

你仍然可以安装一个没有元数据的上传框。您必须为该框使用直接下载URL(不通过Vagrant API传递),例如:

{"name":"debian-current","description":null,"short_description":null,"versions":[{"version":"12","status":"active","description_html":null,"description_markdown":null,"providers":[{"name":"Provider","url":"http://localhost:8081/artifactory/local-vagrant/debian-current.box"}]}]}
vagrant box add http://myserver/B6_Vagrant/vagrant-centos-base.box --name vagrant-centos-base.box
这将返回框的实际位。请注意,您必须使用
--name
参数为
vagrant add
命令提供图像的名称。

可以使用部署UI或REST API上载包含元数据的框。
您可以使用“设置我”功能获取详细说明,这将有助于此过程


欲了解更多信息,请查看Artifactory文档中的部分

,结果我不得不在设置中将/Artifactory添加到Artifactory URL中。通过这种方式,元数据中的url开始指向正确的位置,并且它现在可以正常工作。

要添加到这一点,当我在页面上单击artifactory中工件的下载链接时,它会重定向到缺少URI一部分的另一个链接,并给我一个404。我对工件库完全陌生,我希望vagrant repo是一种简单的方式来启动您下载文件的URL?谢谢您的回复,URI片段是artifactory/api/vagrant/B6_vagrant/vagrant-centos-base.box,它给了我404。这可能是因为布局不正确吗?我不知道如何检查实际文件的位置非常感谢您的回复。我确实成功地配置了元数据,现在我得到了以下响应“{”name:“vagrant centos base”,“description”:null,“short_description”:null,“versions:[{”version:“1.0.0”,“status:“active”,“description_html”:null,“description_markdown”:null,“providers:[{”name:“virtualbox”,“url:”}]}因此,当我发出vagrant up命令时,它会获取元数据,但当它试图从“我得到了404。当我点击gui中的下载按钮时,我得到了相同的404。因此,我不确定是什么原因导致了在开始添加时,我按照artifactory页面上关于vagrant repo设置的说明进行操作,但仍然不断遇到问题:如何处理uri中带有“/”的名称?例如,如果您有一个名为
ubuntu/trusty64
的框,那么如果您尝试添加
vagrant-box,则为404http://myserver/vagrant-local/ubuntu/trusty64.box