You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python的nexuscli从Nexus仓库下载构件时的认证问题求助

NexusCLI下载构件提示需提供Nexus3凭证的解决建议

问题场景

使用nexuscli从Nexus仓库下载构件,仓库层级结构如下:

仓库浏览页面显示的层级:

release
--de
----Updates
------operating
--------libs
-----------Alib
-------------1.0.0
---------------Alib-1.0.0-zip

右键文件获取的路径为de/release/operating/libs/Alib/1.0.0-zip,浏览器直接访问完整地址https://localhost.de/nexus/repository/release/de/Updates/operating/libs/Alib/1.0.0/Alib-1.0.0-32-bit.zip可正常下载(凭证有效)。

当前使用的Python脚本

import nexuscli.nexus_http
from nexuscli.api.repository.base_models.repository import Repository

nexus_config = nexuscli.nexus_config.NexusConfig(url="https://localhost.de/nexus", username="XXX",password="XXX")

nexus_client = nexuscli.NexusClient(nexus_config)
nexus_http = nexuscli.nexus_http.NexusHttp(nexus_config)

nexus_repository = Repository(name="release", nexus_client=nexus_client, nexus_http=nexus_http)

nexus_repository.download("de/release/operating/libs/Alib/1.0.0-zip",
                          "C:\\Users\\XXX\\Pycharm\\Projects\\Trial", flatten=True)
print("HELLO")

问题

脚本执行失败,提示需提供Nexus3凭证,但浏览器使用相同凭证可正常下载。

解决建议

  • 显式指定认证类型:Nexus3默认使用HTTP基础认证,部分版本nexuscli需要显式声明。修改NexusConfig初始化代码:
    nexus_config = nexuscli.nexus_config.NexusConfig(
        url="https://localhost.de/nexus", 
        username="XXX",
        password="XXX",
        auth='basic'
    )
    
  • 修正下载路径格式:右键获取的路径包含重复的release(仓库名已指定为release),需使用浏览器URL中仓库名后的路径。修改download参数:
    nexus_repository.download("de/Updates/operating/libs/Alib/1.0.0/Alib-1.0.0-32-bit.zip",
                              "C:\\Users\\XXX\\Pycharm\\Projects\\Trial", flatten=True)
    
  • 升级nexuscli版本:旧版本nexuscli可能与新版本Nexus服务器存在认证兼容问题,执行升级命令:
    pip install --upgrade nexuscli
    
  • 直接用HTTP请求验证凭证:绕过nexuscli,用requests库测试凭证有效性,排查是否为工具问题:
    import requests
    
    url = "https://localhost.de/nexus/repository/release/de/Updates/operating/libs/Alib/1.0.0/Alib-1.0.0-32-bit.zip"
    auth = ("XXX", "XXX")
    response = requests.get(url, auth=auth)
    with open("C:\\Users\\XXX\\Pycharm\\Projects\\Trial\\Alib-1.0.0-32-bit.zip", "wb") as f:
        f.write(response.content)
    
    若此脚本成功,说明问题出在nexuscli配置;若失败,需检查Nexus服务器的权限设置(如IP白名单、双重认证)。
  • 检查NexusConfig的URL正确性:确认URL未添加多余斜杠,确保与浏览器访问的路径一致(例如使用https://localhost.de/nexus而非https://localhost.de/nexus/)。

内容的提问来源于stack exchange,提问作者RCB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 14:05:25