学习鸿蒙-构建私有仓储

news2024/9/24 9:20:39

1.选择

鸿蒙提供ohpm-repo工具用于构建本地私有仓储

ohpm-repo下载

2.环境配置

安装node,ohpm-repo 支持 node.js 18.x 及以上版本

node最新版本下载

3.配置文件及运行

        1.解压 ohpm-repo 私仓工具包

        2.进入 ohpm-repo 解压目录的 conf 目录内,打开 config.yaml 配置文件
##### server configuration section #####
listen: localhost:8088        # 建议修改为具体的ip/域名
# listen:
# - localhost:8088            # 监听本机环回地址
# - http://localhost:8088     # 监听本机环回地址
# - 0.0.0.0:8088              # 监听本机所有地址 (INADDR_ANY)
# 协议可配置 http 或者 https,默认为 http
# port: 1-65535(Window系统)/ 1024-65535(Linux或Mac系统)

# 可选 (listen 为 https 协议时必须配置)
https_key: ''                 # https 服务使用的 key 的路径  (不配置默认为'')
https_cert: ''                # https 服务使用的 crt 的路径  (不配置默认为'')

##### server deploy root section #####
deploy_root: ''                # 安装根目录 (不配置默认为 `<现有用户home目录>/ohpm-repo`),只支持绝对路径,且路径目录必须存在

##### server numeric limit section #####
max_package_size: 300          # 上传包大小限制,单位是MB (0, 300],不配置默认为 300
max_extract_size: 800          # 压缩包解压后大小限制,单位是MB ,不配置默认为 800
max_extract_file_num: 30000    # 压缩包解压后文件个数限制,默认为30000个
user_rate_limit: 100           # 用户访问频率控制,单位是次/s (0, 10000],不配置默认为 100
fetch_timeout: 60              # 请求/响应的超时时间,单位是秒 (0, 3600],不配置默认为 60
keep_alive_timeout: 60         # TCP 保持连接的超时时间,单位是秒 (0, 3600],不配置默认为 60
api_timeout: 60                # api超时时间,单位是秒(0, 3600],不配置默认为 60
upload_lock_hour: 24           # 下架某一三方包所有版本后,限时禁止同名三方包上传,单位是小时 (0, 168],不配置,默认为 24
upload_max_times: 100          # 单用户24小时内上传次数限制 (0, 100000],不配置默认为 100
operation_log_retention: 100   # 数据库中操作日志保留时间,单位是天,不配置默认为 100
##### metadata storage section #####
## 数据存储类型 filedb 和 mysql 二选一,不可都配置
db:                         # 必须用 yaml 数组形式写法
  type: filedb
  config:                   # 如果想修改存储路径且保留旧的数据,则需要把旧路径下的数据文件迁移至新路径
    path: ./db              # 本地数据存储路径,不配置默认为<deploy_root>/db;

#db:                        # 必须用yaml数组形式写法
#  type: mysql
#  config:
#    host: "localhost"      # 数据库主机地址
#    port: 3306             # 数据库端口 (0,65535]
#    username: root         # 数据库的用户名
#    password: "password"   # 数据库的用户密码(请配置明文, 最终在部署目录中会转换为密文)
#    database: "repo"       # 数据库名

##### storage section #####
## 文件存储类型fs,sftp 和 custom 三选一,不可多选。

store:                               # 必须用 yaml 数组形式写法
  type: fs
  config:                            # 上传资源后如若要修改存储路径,则需要把旧路径下的数据迁移至新路径中
    path: ./storage                  # 已上架三方库存储路径,不配置默认为 <deploy_root>/storage;
    #server: http://localhost:8088   # 仓库下载链接地址,不配置取默认值

# 文件存储类型为 sftp 时,最多配置三个 sftp
#store:                               # 必须用 yaml 数组形式写法
#  type: sftp                         # 当且仅当 db 的类型为 mysql 时,store 的类型才能为 sftp
#  config:
#    location:
#      -
#        name: test_one_sftp          # 主机名字名字不能与其他sftp配置重复
#        host: "localhost"            # 主机地址
#        port: 22                     # 主机端口 (0,65535]
#        read_username: "read"        # 主机有读权限的用户名字
#        read_password: "password"    # 主机有读权限的用户密码(请配置明文, 最终在部署目录中会转换为密文)
#        write_username: "write"      # 主机有写权限的用户名字
#        write_password: "password"   # 主机有写权限的用户密码(请配置明文, 最终在部署目录中会转换为密文)
#        path: /source22              # 相对 sftp 根目录的文件路径,仅限/开头,且路径文件夹必须存在
#      -
#        name: test_two_sftp
#        host: "localhost"
#        port: 24
#        read_username: "read"
#        read_password: "password"
#        write_username: "write"
#        write_password: "password"
#        path: /source24
#    #server: http://localhost:8088   # 仓库下载链接地址,不配置取默认值

#store:
#  type: custom                                            # custom是自定义存储插件类型,自定义存储插件开发流程见指导文档
#  config:
#    export_name: CustomStorage                            # 插件export的类名
#    plugin_path: plugins/CustomStorage.js                 # 插件的绝对路径或者相对于ohpm-repo软件包的路径,建议将插件放在软件包的plugins目录下
#    custom_field: "test"                                  # 自定义字段,通过引入libs/common/getStorageConfigInfo.js的getStorageConfigInfo方法获取自定义字段的值
#    #server: http://localhost:8088                        # 仓库下载链接地址,不配置取默认值
##### uplink section #####
uplink_cache_path: ./uplink      # 缓存路径,不配置默认为 <deploy_root>/uplink
uplink_cache_time: 168           # 远程包 metadata 缓存时间,单位为小时,默认 168 小时,取值范围为 (0, 8760]

##### log section #####
logs_path: ./logs                # 日志路径,不配置默认为 <deploy_root>/logs

##### log level section #####
# 日志级别: 级别由低到高分别是 all、trace、debug、info、warn、error、fatal、mark、off
# run,operate 和 access 不配置或者配置错误,默认为 info
loglevel_run: info
loglevel_operate: info
loglevel_access: info

##### auth plugin section #####
# 可选项,自定义认证插件配置
#auth_plugin:
#  name: CustomAuth              # 认证插件的名字
#  path: plugins/CustomAuth.js   # 插件的绝对路径或者相对于ohpm-repo软件包的路径,建议将插件放在软件包的plugins目录下

##### compatibleSdkVersion等兼容性字段检测日志等级 #####
# 可选值:close、info、warn、error,默认:warn
compability_log_level: warn

##### 是否允许下架被其他组件依赖的包 #####
# 可选项:true,false, 默认:false
allow_remove_depended_packages: false

##### 是否使用文件上传新接口 #####
# 可选项:true,false, 默认:true
allow_new_file_upload_api: true

主要是修改

  1. listen: <部署ohpm-repo机器的ip>:8088
  2. deploy_root: '~/AppData/Roaming/Huawei/ohpm-repo'
3.运行

进入ohpm-repo工具包解压目录中的 bin 目录下,检查环境是否ok,出现版本号为ok

ohpm-repo -v

进入ohpm-repo工具包解压目录中的 bin 目录下,执行安装命令

ohpm-repo install

这时在环境变量会增加deploy_root这个参数值

ohpm-repo安装成功后,进入ohpm-repo工具包解压目录下的 bin 目录下,执行如下命令,启动 ohpm-repo:

ohpm-repo start

运行结果为下面图,则代表成功

4.登录后台

http://localhost:8088/   (<部署ohpm-repo机器的ip>:8088)

ohpm-repo 首次启动时,默认创建一个管理员账号,账号名称:admin,密码:12345Qq! ,需要更改密码

修改后,登录

在仓库管理可以看到仓库名

5.三方库发布到私有仓储
        1.web后台发布

                在Web页面用管理员账号登录ohpm-repo私仓管理地址,在个人中心 > 仓库管理中,点击管理三方包 > 上传三方包,包的后缀名必须为 .har 或者 .tgz。

                

        2. 配置项目私有仓储

        在用户目录下有.ohpm文件夹里面有.ohpmrc

### 仓库配置,支持配置多个地址,使用英文逗号分割
registry=https://repo.harmonyos.com/ohpm/
# registry=https://ohpm.openharmony.cn/ohpm/
## 支持配置含有group的仓库,优先匹配
#@group1:registry=
#@group2:registry=

### 代理配置
#no_proxy=
#http_proxy=
#https_proxy=

### 证书校验配置
## 是否校验https仓库的证书,取值:true|false, default: true, 为true时需要配置ca_files证书路径
strict_ssl=true
#ca_files=

### 发布配置
## 因为registry支持配置多仓,所以此处需明确指定发布仓
publish_registry=https://repo.harmonyos.com/ohpm/
## 用户发布三方库的发布id,从云端个人中心获取
#publish_id=
## 用户私钥文件路径,公钥需在云端进行配置
#key_path=

### 缓存路径, 默认在用户目录下的.ohpm/cache
#cache=

### 日志级别, 取值:debug|info|warn|error, default: info
log_level=info

### 网络请求超时时间, 单位ms, 默认为60s
fetch_timeout=60000

        配置registry地址(用于拉取)和publish_registry(用于上传)

  1. ohpm config set registry <配置的ohpm-repo私仓服务地址>/repos/ohpm 也可以ohpm install @ohos/lottie --registry <配置的ohpm-repo私仓服务地址>/repos/ohpm
  2. ohpm config set publish_registry <ohpm-repo私仓管理地址>/repos/ohpm
registry=http://192.168.158.99:8087/repos/ohpm
strict_ssl=true
publish_registry=http://192.168.158.99:8087/repos/ohpm
log_level=info
fetch_timeout=60000
如果要发布,还需要配置rsa和publish_id

利用工具 ssh-keygen 生成公、私钥,必须输入passphrase(eg.123456)

ssh-keygen -m PEM -t RSA -b 4096 -f <your_key_path>
// eg.
ssh-keygen -m PEM -t RSA -b 4096 -f D:\path\my_key_path

登录 ohpm-repo 私仓管理地址,单击主页右上角的个人中心,新增公钥,将公钥文件(<your_key_path>.pub)的内容粘贴到公钥输入框中

打开命令行工具,执行如下命令设置私钥路径

ohpm config set key_path <your_key_path>
登录 ohpm-repo 私仓管理地址,单击主页右上角的个人中心,复制发布码

将发布码配置到 .ohpmrc 文件中,可执行如下命令

ohpm config set publish_id <your_publish_id>
        3.命令行发布

                静态共享包HAR包

ohpm config set publish_registry <ohpm-repo私仓管理地址>/repos/ohpm
ohpm publish demo.har

或者

ohpm publish demo.har --publish_registry <ohpm-repo私仓管理地址>/repos/ohpm

                动态共享包 HSP 包

                        动态共享包 HSP 包不能直接发布在ohpm-repo内,需要先转化为 .tgz 包,转换方TGZ 包的发布流程同 HAR 一致。

ohpm config set publish_registry <ohpm-repo私仓管理地址>/repos/ohpm
ohpm publish demo.tgz

或者

ohpm publish demo.tgz --publish_registry <ohpm-repo私仓管理地址>/repos/ohpm
组件上传后,在ohpm-repo
6.使用上传到私有仓储的库

        参考5.2 配置项目私有仓储,设置好registry

ohpm config set registry <配置的ohpm-repo私仓服务地址>/repos/ohpm  或者 
ohpm install @ohos/lottie --registry <配置的ohpm-repo私仓服务地址>/repos/ohpm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1996401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyTorch深度学习框架

最近放假在超星总部河北燕郊园区实习&#xff0c;本来是搞前后端开发岗位的&#xff0c;然后带我的副总老大哥比较关照我&#xff0c;了解我的情况后得知我大三选的方向是大数据&#xff0c;于是建议我学学python、Hadoop&#xff0c;Hadoop我看了一下内容比较多&#xff0c;而…

从概念到落地:全面解析DApp项目开发的核心要素与未来趋势

随着区块链技术的迅猛发展&#xff0c;去中心化应用程序&#xff08;DApp&#xff09;逐渐成为Web3时代的重要组成部分。DApp通过智能合约和分布式账本技术&#xff0c;提供了无需信任中介的解决方案&#xff0c;这种去中心化的特性使其在金融、游戏、社交等多个领域得到了广泛…

金融行业如何高效管理新媒体矩阵

金融行业作为经济体系的重要一环&#xff0c;受到社会多方关注和监管。 前有“985大一投行实习日常”的短视频引发大众热议&#xff0c;后有某机构女员工自爆事件牵扯出多家金融机构&#xff0c;将金融行业一度推到了舆论的风口浪尖。 这两件事的接连出现&#xff0c;也把金融新…

飞天发布时刻:大数据AI平台产品升级发布

7月24日&#xff0c;阿里云飞天发布时刻产品发布会围绕阿里云大数据AI平台的新能力和新产品进行详细介绍。人工智能平台PAI、云原生大数据计算服务MaxCompute、开源大数据平台E-MapReduce、实时数仓Hologres、阿里云Elasticsearch、向量检索Milvus等产品均带来了相关发布的深度…

C++必修:STL之forward_list与list的使用

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C学习 贝蒂的主页&#xff1a;Betty’s blog 1. forward_list与list forward_list 是 C 11 引入的一种容器&#xff0c;它是一…

LQR横向控制及融合PID纵向控制C++实现

目录 简介一、现代控制理论1.1 经典控制理论和现代控制理论的区别1.2 全状态反馈控制系统 二、LQR控制器2.1 连续时间2.1.1 Q、R矩阵的选取2.1.2 推导过程2.1.3 连续时间下的LQR算法步骤 2.2 离散时间2.2.1 连续LQR和离散LQR的区别2.2.2离散时间下的LQR算法步骤 三、LQR实现自动…

AI大模型之旅--安装向量库milvus

milvus&#xff0c;向量索引库 1.milvus部署 milvus的官方文档中看到最新版本的部署方式Install Milvus Standalone with Docker Compose curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh &#xf…

stm32f103c8t6与TB6612FNG解耦测试

stm32f103c8t6与TB6612FNG解耦测试 本文操作方式: 忽略底层,只做上层, 所以前面全部照搬步骤,重在调试 文章目录 stm32f103c8t6与TB6612FNG解耦测试本文操作方式:创建基本工程(1)跳转此链接,创建(2)创建电机驱动文件夹(3)PWM原理(4)电机转动控制 oled调试和key调试(5)OLED转速…

C++:奇异递归模板模式(CRTP模式)

奇异递归模板模式 文章目录 奇异递归模板模式理论说明CRTP模式的功能静态多态强制静态接口编译时多态优化解释 理论说明 奇异递归模板模式&#xff08;Curiously Recurring Template Pattern, CRTP&#xff09; 是一种设计模式&#xff0c;其原理很简单&#xff1a; 继承者将自…

工业三防平板赋能自动化产线打造工厂智慧管理

随着工业4.0时代的到来&#xff0c;智能制造成为了众多企业转型升级的必然选择。而MES系统作为智能制造的核心环节&#xff0c;能够有效地整合生产数据&#xff0c;提升生产效率&#xff0c;并实现工厂运营的数字化管理。然而&#xff0c;传统的MES系统大多依赖于PC端操作&…

关于vs调试的一些基本技巧方法,建议新手学习

文章目录 1.Debug 和 Release2.VS的调试快捷键3.对程序的监视和内存观察3.1监视3.2内存 4.编程常见错误归类4.1编译型错误4.2链接型错误4.3运行时错误 1.Debug 和 Release 在我们使用的编译器 vs 中&#xff0c;这个位置有两个选项&#xff0c;分别为Debug和Release&#xff0c…

开源应用:AI监测如何成为社会安全的智能盾牌

社会背景 随着社会的快速发展&#xff0c;社会安全管理正站在一个新时代的门槛上。社会对安全管理的需求不断增长&#xff0c;传统的安全措施已难以满足现代社会的需求。AI技术以其独特的数据处理和模式识别能力&#xff0c;正在成为我们社会安全的智能盾牌。 AI大模型识别功能…

【牛客】2024暑期牛客多校6 补题记录

文章目录 A - Cake&#xff08;树上dp&#xff09;B - Cake 2&#xff08;暴力&#xff09;D - Puzzle: Wagiri&#xff08;tarjan&#xff09;F - Challenge NPC 2&#xff08;构造&#xff09;H - Genshin Impacts Fault&#xff08;签到&#xff09;I - Intersecting Interv…

利用扩散模型DDPM生成高分辨率图像|(一)DDPM模型构建

利用扩散模型DDPM生成高分辨率图像&#xff08;生成高保真图像项目实践&#xff09; Mindspore框架利用扩散模型DDPM生成高分辨率图像|&#xff08;一&#xff09;关于denoising diffusion probabilistic model &#xff08;DDPM&#xff09;模型 Mindspore框架利用扩散模型DD…

数字音频工作站(DAW)FL Studio 24.1.1.4239中文破解版

FL Studio 24.1.1.4239中文破解版是一款功能强大的数字音频工作站&#xff08;DAW&#xff09;&#xff0c;它广泛应用于音乐创作和音乐制作领域。FL Studio是由比利时软件公司Image-Line开发的音乐制作软件&#xff0c;它拥有丰富的音效、合成器、采样器、鼓机等工具。FL Stud…

stm32cubemx+ADC的多通道轮询数据采集和DMA数据采集实现,亲测可用

ADC是单片机的重要组成&#xff0c;也是存在一定的难点。 一、多通道轮询数据采集。 1、配置时钟&#xff0c;用的无源晶振。 2、SW烧写方式 添加USART 3、ADC选择了四个通道 其中两个是采集电压&#xff0c;另外两个是采集芯片内部温度和参考电压。 4、配置采集模式 这里是…

萌啦数据官网丨萌啦ozon数据分析工具官网

在当今这个数据驱动的时代&#xff0c;电子商务的蓬勃发展离不开精准的数据分析与洞察。对于在OZON平台上耕耘的商家而言&#xff0c;掌握市场趋势、优化产品布局、提升运营效率成为了赢得竞争的关键。正是在这样的背景下&#xff0c;萌啦数据官网应运而生&#xff0c;作为一款…

信用卡使用雷区大揭秘:为何你贷款被拒?

​好多朋友明明条件挺好&#xff0c;但申请银行贷款时却吃了闭门羹&#xff0c;一查征信&#xff0c;原来是信用卡使用上栽了跟头。信用卡可是个关键角色&#xff0c;用得好助力贷款&#xff0c;用得不好&#xff0c;直接拖后腿。今天咱们就聊聊信用卡对贷款申请的影响情况和解…

鸿蒙OS ArkTS 省市县级联选择框,封装组件

背景&#xff1a; 公司现在要开发纯血鸿蒙版本APP&#xff0c;我被抽调过来做点功能。现在要做一个省市县级联选择框&#xff0c;并且要封装为组件&#xff0c;供其他页面模块使用。 效果图&#xff1a; 难点&#xff1a; 1. 现在官方文档上只是查到了TextPicker组件是可以做…

建筑设计遇上这几个工具,就是锦上添花!

声明&#xff1a;此篇为 ai123.cn 原创文章&#xff0c;转载请标明出处链接&#xff1a;https://ai123.cn/2161.html 当AI遇上建筑&#xff0c;设计界的火花就这样擦出来了&#xff01;&#x1f440; 身为一名内外饰设计工程师&#xff0c;你是否也在担心作品不经意间借鉴过了头…