安装包和二进制怎么放进仓库:路径怎么定、怎么用 curl 下载

简介: 私有化部署后接 Raw:建 HOSTED,按「项目/版本/文件名」上传安装包与二进制,用 curl/wget 下载,并处理覆盖与 401。

安装包靠网盘传、脚本路径各写各的、合作方永远装到旧 zip——多半不是文件坏了,而是没有统一的二进制入口:路径没约定、上传没认证、下载链接随手改。

下面用 AngusRepo 社区版私有化部署,按操作顺序走完一遍:安装 → 建 Raw HOSTED → 定路径 → curl 上传 / 下载 → 验证。主机写成 repo.example.com。需要匿名对外分发时,再把仓库标公开,见 内部包怎么公开给合作方。

1. 安装(得到可打开的控制台)

前提:Docker Engine + Compose v2;约 2 核 / 4 GB;放行 80;gm.example.com 与 repo.example.com 已解析。见 第一次跑通。

curl --fail --location --progress-bar -o AngusRepo-Community-1.0.0.zip \
  https://repo.anguskit.com/raw/raw-public/AngusKit/repo/AngusRepo-Community-1.0.0.zip
unzip AngusRepo-Community-1.0.0.zip
cd AngusRepo-1.0.0
./install.sh

向导:Compose;Access 2;TLS 4(HTTP :80);Compose MySQL;Public DNS 如 example.com。然后:

./bin/angusctl.sh doctor   # doctor: OK

打开 http://gm.example.com/ 与 http://repo.example.com/。HTTPS 见 安装与部署。下文默认 HTTP。

2. 建仓、令牌与路径约定

Raw 通常一个 HOSTED 即可,靠路径分层,不必为每个安装包建仓。

仓库名示例 类型 干什么
raw-hosted HOSTED 托管任意文件:安装包、脚本、报告、二进制

Raw 仓库拓扑:curl 上传到 HOSTED,按路径下载

推荐路径:项目/版本/文件名:

raw-hosted/
├── my-app/
│   ├── 1.0.0/
│   │   └── my-app-1.0.0-linux-amd64.tar.gz
│   └── 1.1.0/
│       └── my-app-1.1.0-linux-amd64.tar.gz
└── scripts/
    └── deploy.sh

上传即覆盖:相同路径再次上传会直接盖掉旧文件,不保留历史。版本必须写进路径,不要只靠文件名「最新」。

准备:

  • [ ] 访问令牌(只显示一次)
  • [ ] CI 对 raw-hosted 有 Write;下载账号有 Read(或仓库标公开后匿名读)
export REPO_USER="admin"
export REPO_TOKEN="your_access_token"
export REPO_HOST="repo.example.com"

字段说明见 Raw 格式。

3. 上传:curl --upload-file

# 准备一个示例文件
mkdir -p /tmp/angus-raw-demo && cd /tmp/angus-raw-demo
echo "hello-angus-raw" > README.txt
tar -czf my-app-1.0.0-linux-amd64.tar.gz README.txt

curl -u "$REPO_USER:$REPO_TOKEN" \
  --upload-file ./my-app-1.0.0-linux-amd64.tar.gz \
  "http://$REPO_HOST/raw/raw-hosted/my-app/1.0.0/my-app-1.0.0-linux-amd64.tar.gz"

批量:

for file in dist/*.tar.gz; do
  filename=$(basename "$file")
  curl -u "$REPO_USER:$REPO_TOKEN" \
    --upload-file "$file" \
    "http://$REPO_HOST/raw/raw-hosted/my-app/1.0.0/${filename}"
done

写操作一律要认证,即使仓库已公开(公开只表示匿名可读)。

4. 下载:私有与公开

私有仓(推荐 Bearer):

curl -H "Authorization: Bearer $REPO_TOKEN" \
  -O "http://$REPO_HOST/raw/raw-hosted/my-app/1.0.0/my-app-1.0.0-linux-amd64.tar.gz"

或 Basic:curl -u "$REPO_USER:$REPO_TOKEN" -O "http://…"。

公开仓匿名:

curl -O "http://$REPO_HOST/raw/raw-hosted/my-app/1.0.0/my-app-1.0.0-linux-amd64.tar.gz"

5. 验证闭环

# 上传后:控制台 Browse 应能看到路径 my-app/1.0.0/…
# 下载并核对内容
curl -u "$REPO_USER:$REPO_TOKEN" \
  -o /tmp/got.tar.gz \
  "http://$REPO_HOST/raw/raw-hosted/my-app/1.0.0/my-app-1.0.0-linux-amd64.tar.gz"
tar -tzf /tmp/got.tar.gz | head

应能列出 README.txt。可选:列出目录(API,以控制台/手册为准):

curl -u "$REPO_USER:$REPO_TOKEN" \
  "http://$REPO_HOST/api/v1/repositories/raw-hosted/contents?path=/my-app/1.0.0/"

CI 最小片段

- run: |
    curl -u "$REPO_USER:$REPO_TOKEN" \
      --upload-file "./dist/my-app-${VERSION}-linux-amd64.tar.gz" \
      "http://$REPO_HOST/raw/raw-hosted/my-app/${VERSION}/my-app-${VERSION}-linux-amd64.tar.gz"

6. 日常维护

  • 路径里带版本;不要用 latest.tar.gz 当唯一真相。
  • 大文件注意反代超时与上传大小限制。
  • 清理旧版本目录前先 Dry Run,见 清理策略。
  • 对外分发:单独公开仓 + /explore,勿把内网脚本仓整仓公开。

报错速查

症状 常见原因 怎么处理
401 Unauthorized 令牌错误或未带认证上传 -u user:token 或 Bearer
404 Not Found 路径拼错或未上传 对照 Browse 与 URL
下载到旧内容 同路径被覆盖 版本写进路径,勿覆盖正式版
上传超时 反代 body/timeout 过小 调大限制后重试

FAQ

Raw 和 Maven/npm 有什么区别?

Raw 不做包格式解析,只按路径存文件。适合安装包、二进制、报告;有坐标体系的格式仍用对应 HOSTED。

为什么上传会覆盖?

Raw 无版本保护。要保留历史,路径必须含版本号(或哈希)。

能不能匿名上传?

不能。公开只放开读;写始终要登录/令牌。

小结

  • 安装控制台 → 建 raw-hosted → 约定 项目/版本/文件名。
  • curl --upload-file 上传;Bearer/Basic 或公开匿名下载。
  • 用最小 tar 包跑通上传 → Browse → 下载解压。

参考文章

相关文章
|
22天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
9223 29
|
21天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
4539 16
|
8天前
|
存储 人工智能 并行计算
大模型本地部署终端选型方法论:以 Qwen3.8-27B 为例的四档分层完整流程
本文提出一套大模型本地部署终端选型方法论:定约束、定档位、定框架、定参数四步决策法,配合入门、主力、质量、无损四档分层模型。以 Qwen3.8-27B 实测数据为例,逐环节解读显存、带宽、存储、散热、系统、预算等要素,给出面向不同预算的优选方案、决策自查清单与市场观察框架。文末前瞻 AI 笔记本的 CPU+GPU 与统一内存两条路线,论证四步决策法在新品类上的延续性。
|
20天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
2403 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
7天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型深度拆解:原理解读、实战测评与保姆级落地教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为**System One Model(系统一模型)**,对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
568 1
|
2天前
|
存储 缓存 测试技术
QWT 3D 模块重构记:旧渲染管线改进介绍及实时瀑布图示例
QWT 3D模块完成重大重构:解耦窗口与图形(Plot+Item),摒弃OpenGL 1.x固定管线,迁至Core Profile着色器渲染;支持多图元同场景叠加,并以实时3D瀑布图验证——滑动窗口、固定色域、64帧×256点达61fps。兼容Qt 5.12+/6,LGPL协议。
153 120
|
9天前
|
人工智能 Linux Windows
千问办公(QwenWork)官网入口:其实有2个,一个是网页端千问办公,一个是介绍指南页面
千问办公(QwenWork)是阿里云推出的AI智能办公平台,支持网页端直接使用及Windows/Mac/Linux客户端下载。提供PPT生成、财报分析、网页搭建等AI功能,个人版免费,企业版198元/席/月。详情见官网qwenwork.cn或阿里云产品页。
1129 0
千问办公(QwenWork)官网入口:其实有2个,一个是网页端千问办公,一个是介绍指南页面
|
14天前
|
Windows
【保姆级】.NET Framework 3.5离线安装教程(2026最新实测)
.NET Framework 3.5是微软经典运行库,专为兼容老软件、老游戏设计。Win7自带,Win10/11需手动启用(在线或离线安装)。它与4.x系列并存不冲突,缺它会导致“找不到组件”报错。本文详解两种安装方式及常见问题解决,小白也能轻松上手。(239字)
1675 0
|
3天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型全解析:核心原理拆解,性能实战测评与落地部署教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为System One Model(系统一模型),对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
352 0