文档管理中心
我的

ohpm publish发布SDK报错

问题现象

场景一:ohpm publish发布SDK报错Invalid OHPM package repository。

错误信息如下:

Error Message: The "Publish" request to url "https://ohpm.openharmony.cn/ohpm/@lynx%2fprimjs" has failed
╰→ Caused by:
Original Error: HttpCode 400 Invalid OHPM package repository.

场景二:ohpm publish发布时报错HttpCode 413 Request Entity Too Large。

报错信息如下:

ohpm ERROR: HttpCode 413 Request Entity Too Large.
ohpm ERROR: Publish failed, detail: The "Publish" request to url "xxxxx" has failed.

背景知识

OHPM(OpenHarmony Package Manager)由OpenHarmony三方库中心仓网站、命令行工具、OpenHarmony三方库中心仓仓库三个部分组成,其功能如下:

  • OpenHarmony三方库中心仓网站(website):用于检索、查看所需OpenHarmony三方库信息,也可管理关于ohpm的个人配置。
  • 命令行工具(cli):OpenHarmony三方库的包管理工具。
  • OpenHarmony三方库中心仓仓库(registry):存储三方库软件及其元数据的仓库。

ohpm publish可以将三方库发布到OpenHarmony三方库中心仓,以便可按名称安装它。发布前,需要完成公钥私钥生成,把公钥上传服务端,并在ohpmrc文件中配置公仓的发布码和私钥路径。

解决方案

  • 场景一:此错误是因为oh-package.json5文件中的repository字段未正确配置,此为开源代码的仓库地址,需要以https|http|ftp|rtsp|mms开头。
  • 场景二:私仓对SFTP是没有限制的,这个问题一般就是上传文件过大,导致链接的SFTP服务器报错。排查一下部署私仓,是否使用了代理服务器,导致在代理服务器的地方存在对上传文件大小的限制。再检查一下SFTP服务器的配置项,是否有针对上传文件给设置限制。SFTP服务器配置中可能存在对上传文件大小的限制。以下是一些可能的原因:
    • 文件系统限制:服务器上的文件系统本身可能对文件大小有限制。例如,FAT32文件系统限制单个文件大小为4GB。如果服务器使用的是此类文件系统,那么上传的文件大小将受到此限制。
    • 磁盘空间:服务器上的磁盘空间不足也会导致文件上传失败。因此,确保服务器有足够的磁盘空间来存储上传的文件。
    • 操作系统限制:操作系统对文件大小的限制。
    • 服务/客户端限制:检查SFTP客户端/服务端的设置选项,查找并调整文件上传大小的限制。
    • 连接稳定性:SFTP连接的稳定性和传输效率也会影响SFTP文件上传,可以适当优化网络及硬件条件。

总结

  1. repository仓库地址需要以https|http|ftp|rtsp|mms开头。
  2. HttpCode服务器报错码,还没进到ohpm中,优先排查代理服务器,如果有使用类似SFTP传输的,也需要排查SFTP。