导出OpenHarmony三方库中心仓元数据至ohpm-repo
支持通过export_pkginfo和batch_download命令,将OpenHarmony三方库中心仓中所有包批量导出,并能够通过batch_publish命令将导出的库批量上传至部署的ohpm-repo实例中。
开始执行下面的命令之前,请确保已经执行过ohpm-repo install和ohpm-repo start命令。
获取所有已上架的包列表
使用export_pkginfo 命令,导出OpenHarmony三方库中心仓已上架的包列表。
ohpm-repo export_pkginfo --public-registry <OpenHarmony三方库中心仓registry地址> --http-proxy <可选配置代理地址>
执行结果
PS C:\Users\xxxxx\Desktop> ohpm-repo export_pkginfo --public-registry https://ohpm.openharmony.cn/ohpm/
...
[xxxx-xx-xxTxx:51:46.664] [INFO] DEFAULT - Export 912 packages names success: save to "C:\Users\xxxxx\Desktop\pkgInfo_1712069506662.json".
// pkgInfo_1712069506662.json中记录着公仓的包列表
{
"packageNameArray": [
"@ohos/lottie-turbo@1.0.0",
"@ohos/lottie-turbo@1.0.0-rc.0",
"@ohos/lottie-turbo@1.0.0-rc.1",
...
]
}
批量下载三方包
执行batch_download命令将上一步生成的pkgInfo_xxx.json文件中记录的包全部下载。
若只需要下载中心仓的部分包,可以手动修改pkgInfo_xxx.json文件,此时该命令只会批量下载pkgInfo_xxx.json文件中指定的包。
ohpm-repo batch_download <pkgInfo_xxx.json文件地址> --public-registry <OpenHarmony三方库中心仓registry地址> --http-proxy <配置代理地址> --not-use-proxy <配置不使用代理>
执行结果
PS C:\Users\xxxxx\Desktop> ohpm-repo batch_download C:\Users\xxxxx\Desktop\pkgInfo_1712069506662.json --public-registry https://ohpm.openharmony.cn/ohpm/
...
[2024-04-02T23:16:59.217] [INFO] default - A total of 912 package(s) successfully obtain download url.
[2024-04-02T23:16:59.217] [INFO] default - A total of 912 package(s) are successfully downloaded.
[2024-04-02T23:16:59.217] [INFO] default - A total of 912 package(s) are converted successfully.
[2024-04-02T23:16:59.217] [INFO] default - Packing the .zip file. . .
[2024-04-02T23:16:59.475] [INFO] default - save the .zip file to : "C:\Users\xxxxx\Desktop\batch_download_1712071006796.zip".
批量上传
执行batch_publish命令将上一步生成的batch_download_xxx.zip压缩包中全部包批量上传到ohpm-repo。
- batch_download_xxx.zip文件中存在pkgInfo.json文件,其中记录了每个包的 文件名、包名、组织、上传者、Tag标签,用于在批量上传时准确指定ohpm-repo的数据库中某用户为某包的真实上传用户,同时将包的Tag标签一起上传。
- 假设某个中心仓包的组织为A,如需为其指定ohpm-repo的数据库中某用户为其真实上传用户,但ohpm-repo实例中不存在A组织时,执行batch_download命令后该包的真实上传用户将设定为空,并且提醒用户手动创建A组织。执行批量上传时,也会提醒A组织在ohpm-repo实例中不存在,需要先手动创建A组织。如果需要自动添加组织,使用batch_publish命令的可选参数--force,将会选取一个管理员用户作为A组织负责人,自动创建A组织后进行该包的上传。
- 从ohpm-repo 5.3.0版本开始,ohpm-repo支持配置多个仓库。通过batch_download下载下来的包如果执行batch_publish命令,默认上传到ohpm-repo仓库名为ohpm的仓库中,如果不存在仓库名为ohpm仓库,将报错,可通过batch_publish的选项 --target-repo重新指定需要上传的仓库名。
ohpm-repo batch_publish <batch_download_xxx.zip文件地址> --force
执行结果
PS C:\Users\xxxxx\Desktop> ohpm-repo batch_publish C:\Users\xxxxx\Desktop\batch_download_1712071006796.zip --force
...
[xxxx-xx-xxTxx:50:29.100] [INFO] default - all 912 package(s) are successfully published
[xxxx-xx-xxTxx:50:29.101] [WARN] default - You are using "filedb" to store data. If you have already started a repository service, please run `ohpm-repo restart` to restart the service.
如果ohpm-repo实例的数据存储类型为filedb,请执行ohpm-repo restart命令重启ohpm-repo服务,以便刷新ohpm-repo实例缓存中的数据。该操作会影响正在使用ohpm-repo服务的用户,请提前告知。