为什么 Artifactory 不 list/cache 来自远程 NuGet Gallery 存储库的 NuGet 包?

Why does Artifactory not list/cache NuGet Packages from remote NuGet Gallery repo?

我希望从现有的私有 NuGet Gallery 存储库迁移。我们有带有 nuget 虚拟、nuget-local 和 nuget-remote-cache 存储库的 Artifactory(v6.10.1,即将升级)。

我已将 Artifactory 远程存储库配置为指向 NuGet Gallery 服务器,正如您从下面的屏幕截图中看到的那样,它通过了连接测试。但是,当我尝试从远程仓库 nuget list 时,我没有收到任何返回的包裹。如果我直接对 NuGet Gallery 尝试相同的调用,我会返回很多包。我的帐户在 artifactory 中具有 "anything" 权限(有效权限显示所有 4 个检查)并且不需要身份验证即可从 NuGet Gallery 或 artifactory repo 中检索,但我已经设置了我的 un/pw 和 apikey all相同。如果我尝试浏览包,NuGet 甚至不可用。在 Artifacts 中,唯一显示的是本地存储库中的 package.json。这是怎么回事?

问题原来是我启用了 "Global Offline mode",因此 Artifactory 甚至拒绝尝试访问远程存储库。 request.log 中完全没有日志条目可以证明这一点。禁用该设置允许列表列出包。

我仍然没有在缓存中看到任何包,但是在 运行 nuget install <package> 之后,它出现在缓存中。显然缓存只发生在一个包的拉取上,而不是作为远程仓库的完整副本。

Artifactory 中的远程存储库用作存储库 URL 指向的缓存代理。为了控制硬件的存储,工件根据用户的需求被缓存,因此它没有与远程同步 URL。

话虽如此,如果远程存储库指向其他 Artifactory 存储库,您可以设置 Artifactory 的拉取复制功能以从远程 Artifactory 服务器检索工件并填充远程存储库缓存,并以这种方式同步存储库。