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

无法通过Artifactory API下载通用仓库PNG文件(报404但UI可下载)

Artifactory API下载PNG文件返回404但UI可正常访问的解决办法

问题现象

通过Artifactory UI可直接下载通用仓库中的PNG文件,但使用API请求时返回404错误:

  • PowerShell WebClient提示:The remote server returned an error: (404) Not Found.
  • Postman请求https://<artifactory-url>/artifactory/testpng/test-1.png返回:

{
"errors" : [ {
"status" : 404,
"message" : "Not Found"
} ]
}

常见原因及解决办法

  • URL路径或格式问题
    Artifactory下载文件有两种常用API路径,检查你使用的路径是否正确:

    • 直接访问路径:需确保仓库名、文件名大小写与实际完全一致(部分Artifactory配置大小写敏感),格式为https://<artifactory-url>/artifactory/<repo-key>/<file-path>
    • REST API格式:可尝试使用https://<artifactory-url>/artifactory/api/storage/<repo-key>/<file-path>?download发起请求
  • 缺少身份验证
    UI访问依赖会话登录,但API请求需单独携带认证信息:

    • Postman中添加Basic Auth,填入Artifactory账号密码;或在请求头添加X-JFrog-Art-Api: <你的API密钥>
    • PowerShell中通过以下代码添加认证:
      $webClient = New-Object System.Net.WebClient
      $webClient.Credentials = New-Object System.Net.NetworkCredential("用户名", "密码")
      # 或使用API密钥
      $webClient.Headers.Add("X-JFrog-Art-Api", "你的API密钥")
      
  • 仓库权限不足
    检查当前账号是否拥有目标仓库的读取权限:

    1. 登录Artifactory UI,进入Admin > Repositories > Repositories
    2. 找到目标通用仓库,切换到Permissions标签页
    3. 确认你的用户/用户组拥有Read权限,且权限覆盖目标文件路径
  • 路径编码问题
    如果文件名或路径包含空格、特殊字符(如&、#),需对URL进行编码:

    • Postman中可自动处理,或手动替换特殊字符(如空格替换为%20)
    • PowerShell中使用[Uri]::EscapeUriString($filePath)对路径进行编码

验证步骤

  1. 先在Postman中添加正确认证信息,重试原URL
  2. 若仍返回404,切换到REST API格式的下载URL测试
  3. 使用管理员账号测试,排除权限类问题
  4. 核对文件名、仓库名的大小写与UI显示是否完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:55:22