ARTIFACTORY:如何在启用匿名访问时使用Wget下载PyPI包

穆罕默德Kashif
2023-01-22 11:07

有时需要从没有使用Wget命令进行匿名访问的存储库下载PyPI包,但是,这可能会因为禁止访问而失败。

例如,我们已经为下面的任何存储库启用了匿名访问KB文章当尝试使用下面的Wget命令下载PyPI包时,会因为禁止访问而失败。wget——user=admin——password=password -d http://localhost:8081/artifactory/api/pypi/pypi-local/6e/b0/07bb4981158e66021516a8b47793dfc7e58a7914ca82520b5c28573fa409/AdHoc-0.1.1.tar.gz
未编译的调试支持。忽略——debug标志。
——2020-05-18 19:28:10——http://localhost:8081/artifactory/api/pypi/pypi-local/6e/b0/07bb4981158e66021516a8b47793dfc7e58a7914ca82520b5c28573fa409/AdHoc-0.1.1.tar.gz
解析localhost (localhost)…:: 1, 127.0.0.1
连接到本地主机(localhost)|::1|:8081…连接。
HTTP请求已发送,等待响应…403年被禁止的
2020-05-18 19:28:11 ERROR 403: Forbidden。
但是,可以使用curl命令或启用对该PyPI存储库的匿名访问来下载这些包。

在使用Wget启用对其他存储库的匿名访问后,要从PyPI存储库下载包,可以发送“-auth-no-challenge选项以及Wget。wget——user=admin——password=password -d——auth-no-challenge http://localhost:8081/artifactory/api/pypi/pypi-local/6e/b0/07bb4981158e66021516a8b47793dfc7e58a7914ca82520b5c28573fa409/AdHoc-0.1.1.tar.gz原因在于Wget的工作方式,curl命令将基本身份验证发送给Artifactory,但Wget在发送凭据之前请求来自服务器端(即Artifactory)的基本身份验证挑战,然而,由于来自Wget的第一个请求是匿名的,并且在Artifactory中启用了匿名访问,并且对PyPI存储库没有权限,因此请求失败。使用“-auth-no-challenge选项以及Wget命令将绕过Wget命令
向Artifactory发送基本身份验证挑战请求,并随请求一起发送凭据。