如何设置PUPPETEER_DOWNLOAD_HOST解决Puppeteer安装时Chromium下载403错误
Puppeteer私有源Chromium下载配置问题解答
1. 你当前设置的PUPPETEER_DOWNLOAD_HOST不会生效
原因是PUPPETEER_DOWNLOAD_HOST仅替换下载URL的域名部分,Puppeteer仍会自动拼接官方默认的路径后缀/chromium-browser-snapshots/[平台]/[版本号]/[压缩包名],最终拼接出的下载地址为https://artifactory.company.com/dept/team/project/chromium-browser-snapshots/Linux_x64/901912/chrome-linux.zip,和你实际存放的包地址不符,所以会请求失败。
2. 包名保持chrome-linux.zip时的配置方案
有两种可选方案:
方案1:调整制品库路径适配PUPPETEER_DOWNLOAD_HOST规则
在你的制品库/dept/team/project目录下,创建层级目录chromium-browser-snapshots/Linux_x64/901912,将chrome-linux.zip放到该目录下,再执行你原来的配置即可生效:
export PUPPETEER_DOWNLOAD_HOST=https://artifactory.company.com/dept/team/project
方案2:跳过下载直接指定本地可执行文件(更稳定)
如果不想调整制品库结构,推荐用这种方案,无需适配下载规则:
- 先将下载好的
chrome-linux.zip解压到任意本地目录,比如/opt/chromium/ - 配置两个环境变量即可:
# 跳过Chromium自动下载 export PUPPETEER_SKIP_DOWNLOAD=true # 指向解压后的Chrome二进制文件绝对路径 export PUPPETEER_EXECUTABLE_PATH=/opt/chromium/chrome-linux/chrome
3. 包名改为chromium-linux-x64-r901912.zip时的配置方案
此时默认的文件名匹配规则失效,不推荐用下载类环境变量配置,直接用上面的跳过下载指定本地可执行文件方案即可,无需适配文件名规则。
如果你一定要走自动下载流程,需要在项目根目录新增.puppeteerrc.cjs配置文件(Puppeteer v16+支持),自定义下载规则:
module.exports = { // 你的私有制品库包所在目录 downloadBaseUrl: 'https://artifactory.company.com/dept/team/project', // 对应Chromium版本号 chromiumRevision: '901912', // 自定义下载后的文件名匹配规则 executablePath: (platform, revision) => `chromium-${platform}-x64-r${revision}.zip` }
内容的提问来源于stack exchange,提问作者rong
相关产品推荐
相关产品推荐

