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

免费推广网站短视频南三环做网站的公司

免费推广网站短视频,南三环做网站的公司,如何用七牛云做视频网站,怎么开公众号本文介绍如何将一个 Nexus 特定仓库中的 npm 包内容迁移到另一个 Nexus 特定仓库。此过程适用于需要重构仓库结构或合并仓库的场景。 迁移脚本 以下是完整的迁移脚本,它会自动完成以下操作: 从源仓库获取所有 npm 包列表下载每个包的 .tgz 文件解压并…

本文介绍如何将一个 Nexus 特定仓库中的 npm 包内容迁移到另一个 Nexus 特定仓库。此过程适用于需要重构仓库结构或合并仓库的场景。

迁移脚本

以下是完整的迁移脚本,它会自动完成以下操作:

  1. 从源仓库获取所有 npm 包列表
  2. 下载每个包的 .tgz 文件
  3. 解压并重新发布到目标仓库
#!/bin/bash# === 配置区域 ===
NEXUS_URL="https://nexus.test.com"
USERNAME="test"
PASSWORD="123456"SOURCE_REPO="npm-a"
TARGET_REPO="npm-b"SOURCE_REGISTRY="$NEXUS_URL/repository/$SOURCE_REPO/"
TARGET_REGISTRY="$NEXUS_URL/repository/$TARGET_REPO/"TMP_DIR="/tmp/npm-migrate"
mkdir -p "$TMP_DIR"
cd "$TMP_DIR" || exit 1
# =================# ✅ 日志处理:同时输出到终端和日志文件
LOG_FILE="$TMP_DIR/npm-migrate.log"
exec > >(tee -a "$LOG_FILE") 2>&1log() {echo "[$(date '+%F %T')] $*"
}log "🚀 启动 npm 仓库迁移脚本"# 遇到错误不中断脚本
set +eTOKEN=""while true; dolog "📥 获取包列表,continuationToken=$TOKEN"RESPONSE=$(curl -s -u "$USERNAME:$PASSWORD" \"$NEXUS_URL/service/rest/v1/components?repository=$SOURCE_REPO${TOKEN:+&continuationToken=$TOKEN}")ITEM_COUNT=$(echo "$RESPONSE" | jq '.items | length')log "📦 本页包含 $ITEM_COUNT 个包"echo "$RESPONSE" | jq -c '.items[]' | while read -r item; doname=$(echo "$item" | jq -r '.assets[0].path' | cut -d/ -f1)version=$(echo "$item" | jq -r '.version')log "➡️ 处理 $name@$version"tarball_url="${SOURCE_REGISTRY}${name}/-/${name}-${version}.tgz"tarball_file="${name}-${version}.tgz"log "🌐 下载包: $tarball_url"curl -s -u "$USERNAME:$PASSWORD" -O "$tarball_url"if [[ -f "$tarball_file" ]]; thentar -xzf "$tarball_file"pkg_dir="package"# 可选:检查是否已存在(加快速度)EXISTS=$(curl -s -u "$USERNAME:$PASSWORD" "$TARGET_REGISTRY$name" | grep "\"$version\"")if [[ -n "$EXISTS" ]]; thenlog "✅ $name@$version 已存在于目标仓库,跳过发布"elselog "🚀 发布 $name@$version$TARGET_REPO"npm publish "$pkg_dir" --registry "$TARGET_REGISTRY" --forceif [[ $? -ne 0 ]]; thenlog "❌ 发布失败:$name@$version"elselog "✅ 发布成功:$name@$version"fifirm -rf "$tarball_file" "$pkg_dir"elselog "❌ 下载失败:$tarball_url"fidone# 分页处理TOKEN=$(echo "$RESPONSE" | jq -r '.continuationToken')if [[ "$TOKEN" == "null" || -z "$TOKEN" ]]; thenlog "✅ 所有包处理完成,无更多分页"breakelselog "➡️ 获取下一页 continuationToken=$TOKEN"fi
donelog "🏁 所有迁移已完成"

~/.npmrc 中配置目标仓库的 auth 认证信息,因为发布包要使用,内容如下示例:

registry=https://nexus.test.com/repository/npm-b/
//nexus.test.com/repository/npm-b/:_auth=c45h2312asmh3dsfYW3fassaawRAxMde=
//nexus.test.com/repository/npm-b/:always-auth=true

其中 _auth 后面的内容是对 “账号:密码” 进行base64之后的字符串,注意账号密码使用英文冒号分隔拼接在一起后统一 base64。

使用说明

  • 确保已安装 curl, jq, npmtar 工具

  • 确保有源仓库和目标仓库的访问权限

执行脚本:

chmod +x migrate.sh
./migrate.sh

注意事项

  • 此脚本仅处理源仓库中的第一页数据(默认100条记录),如需处理更多数据,需要添加分页逻辑

  • 迁移过程中会保留原始包的版本信息

  • 使用 --force 参数强制发布,可能会覆盖目标仓库中已存在的同名包

  • 脚本执行完毕后会自动清理临时文件


(END)

http://www.dtcms.com/a/417736.html

相关文章:

  • 沙坪坝集团网站建设专业网页制作哪家好
  • 淘宝内部券网站建设家在龙岗
  • 手机网站营销页网站是数据
  • 宁波学校网站建设哪个网站做ppt好
  • 福州网站建设fjfzwl千万别在百度上搜别人的名字
  • 建设银行etc信用卡申请网站免费工作总结ppt模板下载
  • 360网站建设商家广西网站seo
  • 温州网站建设策划做618购物网站的总结
  • 郑州高端模板建站教育网站的开发与建设论文
  • 国外电商网站有哪些跨界营销案例
  • php 英文商城网站建设线上外贸平台有哪些
  • 查询网站dns服务器投融网站建设方案
  • 厦门网站建设门户做网站的电话
  • 怎么样建设网站网站全是广告的网站
  • 南通网站建打造自己的网站
  • 南京网站排名优化费用组织建设包括哪些内容
  • 正品海外购网站有哪些网站开发人员分工
  • 小企业网站建设有什么用seo与网站建设
  • 百度服务器建设自己的网站网站开发语言排行
  • 企业网站 优秀在线crm客户管理系统
  • 管庄地区网站建设郑州seo优化外包
  • 网站开发公司深圳网站建设基础资料
  • 建筑网站案例网站建设维护实训总结
  • 眉山建行网站怎么登录百度app
  • 济南seo网站建设网站建设需求分析流程图
  • 哪个网站做译员好济南网站建设 刘彬彬
  • 建立的网站百度搜索不到网络营销的三种方式
  • 网站后台更新缓存失败制作板块的网站
  • 青羊区网站设计wordpress 编辑代码
  • 韩国大型门户网站沟通交流型网站广告如何做