当前位置: 首页 > news >正文

在本地获取下载chrome,然后离线搬运到 ECS

在这里插入图片描述

场景:

  • 阿里云 ECS 无Y网,无法直接拉取 storage.googleapis.com
  • 因此需先在本地里拿到直链并下载,再上传到 ECS。

注:
这个链接是显示近期的几个版本 https://googlechromelabs.github.io/chrome-for-testing/
在这里插入图片描述

这个链接是所有版本 https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json
在这里插入图片描述

步骤 1:本地一键获取直链

把下面 10 行 Python 脚本保存为 get_url.py,在本地电脑(已科学上网)运行:

import requests, json, sysversion = sys.argv[1]          # 例:139.0.7258.138
platform = sys.argv[2]         # 例:linux64 / win64 / mac-x64 / mac-arm64url = "https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json"
data = requests.get(url, timeout=10).json()for v in data["versions"]:if v["version"] == version:for item in v["downloads"].get("chrome", []):if item["platform"] == platform:print(item["url"])exit(0)
print("未找到对应版本/平台")

运行示例:

python3 get_url.py 139.0.7258.138 linux64
# 输出:https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.138/linux64/chrome-linux64.zip

步骤 2:本地下载并校验

复制上一步得到的直链,在本地执行:

wget -O chrome-linux64.zip "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.138/linux64/chrome-linux64.zip"
# 或 curl -L -o chrome-linux64.zip <URL>

步骤 3:上传到 ECS

任选其一:

方式命令示例
scpscp chrome-linux64.zip root@<ECS_IP>:/tmp/
rsyncrsync -avP chrome-linux64.zip root@<ECS_IP>:/tmp/
OSS / COS先上传到对象存储,再在 ECS 内 wget 内网地址

或直接用 Alibaba cloud client的上传文件/目录的功能,窗口交互式上传文件
在这里插入图片描述

步骤 4:ECS 内解压并部署

ssh root@<ECS_IP>
cd /tmp
unzip -q chrome-linux64.zip
mv chrome-linux64 /opt/chrome/139.0.7258.138
chmod +x /opt/chrome/139.0.7258.138/chrome

常见坑 & 提示

  • 链接 404?99 % 是版本号或平台拼写错误,对照 JSON 再确认。
  • zip 下载不完整?本地先 unzip -t 校验,再上传,避免 ECS 解压失败。
  • 多版本并存?在 ECS 里用软链 /usr/local/bin/chrome-puppeteer 指向所需版本即可。

通过以上流程,即可在无外网 ECS中稳定使用任意历史版本的 Chrome for Testing。


以我之思,AI助力之!

http://www.xdnf.cn/news/1389079.html

相关文章:

  • 最小生成树——Kruskal
  • go 使用rabbitMQ
  • 【谷歌浏览器】浏览器实用自用版——谷歌浏览器(Google Chrome)离线纯净版安装 官方版无任何捆绑及广告 【离线安装谷歌浏览器】
  • 通过 KafkaMQ 接入Skywalking 数据最佳实践
  • R ggplot2学习Nature子刊一张图,换数据即可用!
  • leetcode 338 比特位计数
  • 04数据库约束实战:从入门到精通
  • Linux下的网络编程SQLITE3详解
  • 算法题打卡力扣第1004. 最大连续1的个数 III(mid)
  • 技术速递|新手指南:如何在 Foundry Local 中使用自定义模型
  • 百度后端岗位--面试真题分析
  • CCS的诡异报错合集1(以C2000为例)
  • MAC spotlight 搜不到应用程序和 tags 生效
  • ZooKeeper 安装配置
  • C++基础(②VS2022创建项目)
  • 球型摄像机实现360°无死角
  • CLion 中配置运行 Qt 项目指南
  • 三一重工AI预测性维护破局:非计划停机减少60%,技师转型与数字孪生技术搅动制造业
  • 预制菜餐厅:工业化与温度餐平衡术
  • 【Rust】 5. Trait 与运算符重载
  • Python Imaging Library (PIL) 全面指南:PIL高级图像处理-分割与颜色空间转换
  • [Mysql数据库] 知识点总结6
  • 人工智能-python-深度学习-批量标准化与模型保存加载详解
  • 嵌入式-定时器的从模式控制器、PWM参数测量实验-Day24
  • 快手发布SeamlessFlow框架:完全解耦Trainer与Agent,时空复用实现无空泡的工业级RL训练!
  • OpenTenBase实战:从MySQL迁移到分布式HTAP的那些坑与收获
  • MySQL數據庫開發教學(三) 子查詢、基礎SQL注入
  • java开发连接websocket接口
  • system论文阅读--HPCA25
  • 基于SpringBoot和百度人脸识别API开发的保安门禁系统