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

如何在Artifactory中为Satis Composer仓库启用缓存

Artifactory Composer仓库配置问题解决指南

一、Git提供商配置的作用与多平台影响

  • Artifactory配置Git提供商(如GitHub),核心是为了处理VCS类型的PHP包(即直接从Git仓库拉取的包,而非Packagist/Satis预构建的dist包)。当Composer请求这类VCS包时,Artifactory需要通过对应Git平台的API获取仓库元数据、拉取代码并打包为dist文件缓存,避免每次都直接请求Git平台。
  • 如果使用GitLab等其他平台,必须在Artifactory中配置GitLab作为Git提供商(而非GitHub),并确保配置了正确的API地址、访问令牌。若未适配对应平台,VCS类型的包将无法正常拉取、缓存,会出现权限报错或元数据获取失败的问题。
  • 注意:对于Satis/Packagist这类已生成完整dist包索引的仓库,Git提供商不是必需配置项,仅当你的仓库包含VCS类型包时才需要。

二、解决Satis仓库包无法缓存的问题

你的场景中,Artifactory仅代理了Satis的元数据(packages.json),但dist包直接从Satis下载,核心原因是Artifactory未改写Satis返回的dist文件URL,导致Composer绕过Artifactory直接请求上游。解决步骤如下:

  1. 进入Artifactory中对应Satis远程仓库的配置页面
  2. 切换到高级设置标签页,找到**“Rewrite Package Download URLs”**选项(部分版本可能标注为“重写包下载URL”)
  3. 启用该选项并保存配置
  4. 清理Composer本地缓存(执行composer clear-cache),重新执行安装命令

启用该选项后,Artifactory会将Satis返回的dist包URL替换为自身的代理地址,Composer会从Artifactory请求dist包,此时Artifactory会先从Satis拉取包文件并缓存到本地,后续请求直接返回缓存内容。

关于Artifactory请求/api/system/version的404问题

这是Artifactory在自动检测上游仓库是否为Artifactory实例的默认行为,由于Satis并非Artifactory,所以返回404,属于正常现象,不会影响包的缓存与拉取,可忽略。

验证效果

重新执行composer i -vvv,应该会看到dist包从Artifactory地址下载,类似:

Installs: os/pear:1.0.4
  - Downloading os/pear (1.0.4)
Downloading https://artifacts.plesk.tech/artifactory/api/composer/composer-internal/vcs-dists/zip/os/pear/os-pear-1.0.4-8d8196.zip
[200] https://artifacts.plesk.tech/artifactory/api/composer/composer-internal/vcs-dists/zip/os/pear/os-pear-1.0.4-8d8196.zip

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:50:28