华为云用户手册

  • 调用API示例 在工程中引入sdk。 1 2 3 4 5 6 using System; using System.Net; using System.IO; using System.Net.Http; using System.Threading; using APIGATEWAY_SDK; 生成一个新的Signer, 填入AppKey和AppSecret。 本示例以AK和SK保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。以Linux系统为例在本地将已获取的AK/SK设置为环境变量。 打开终端,输入以下命令打开环境变量配置文件。 vi ~/.bashrc 设置环境变量,保存文件并退出编辑器。 export HUAWEICLOUD_SDK_AK="已获取AK值" export HUAWEICLOUD_SDK_SK="已获取SK值" 输入以下命令使配置文件生效。 source ~/.bashrc 生成一个新的Signer,填入已设置的环境变量。 1 2 3 4 5 Signer signer = new Signer(); // Directly writing AK/SK in code is risky. For security, encrypt your AK/SK and store them in the configuration file or environment variables. // In this example, the AK/SK are stored in environment variables for identity authentication. Before running this example, set environment variables HUAWEICLOUD_SDK_AK and HUAWEICLOUD_SDK_SK. signer.Key = Environment.GetEnvironmentVariable("HUAWEICLOUD_SDK_AK"); signer.Secret = Environment.GetEnvironmentVariable("HUAWEICLOUD_SDK_SK"); 生成一个HttpRequest对象,指定域方法名、请求url和body。 1 2 3 HttpRequest r = new HttpRequest("POST", new Uri("https://c967a237-cd6c-470e-906f-a8655461897e.apigw.exampleRegion.com/app1?query=value")); r.body = "{\"a\":1}"; 给请求添加x-stage头,内容为环境名。如有需要,添加需要签名的其他头域。 1 r.headers.Add("x-stage", "RELEASE"); 进行签名,执行此函数会生成一个新的HttpWebRequest,并在请求参数中添加用于签名的X-Sdk-Date头和Authorization头。 1 HttpWebRequest req = signer.Sign(r); 访问API,查看访问结果。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 try { var writer = new StreamWriter(req.GetRequestStream()); writer.Write(r.body); writer.Flush(); HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); var reader = new StreamReader(resp.GetResponseStream()); Console.WriteLine(reader.ReadToEnd()); } catch (WebException e) { HttpWebResponse resp = (HttpWebResponse)e.Response; if (resp != null) { Console.WriteLine((int)resp.StatusCode + " " + resp.StatusDescription); var reader = new StreamReader(resp.GetResponseStream()); Console.WriteLine(reader.ReadToEnd()); } else { Console.WriteLine(e.Message); } } Console.WriteLine("----------------");
  • 背景介绍 相对于开发过程中的“源代码”,制品仓库服务关注和管理开发产生的待部署的软件包。软件包通常是由源码编译构建或打包而成,其中涉及生命周期的元数据(如名称、大小等基本属性、代码库地址、代码分支信息、构建任务、构建者、构建时间)。在开发过程中,软件包会根据不同版本不断生成改进。 软件包及其属性的管理是发布过程管理的基础,也是软件开发过程中的重要资产,而能够及时查看软件包的版本记录也成为开发者面临的诉求。
  • 通过编译构建发布Maven私有组件到私有依赖库 在代码仓库完成设置组件版本后,单击页面右上角“设置构建”,页面跳转至“新建编译构建任务”页面。 在页面中选择“空白构建模板”,单击“下一步”。 单击“点击添加构建步骤”。搜索并添加步骤“Maven构建”。 编辑步骤“Maven构建”。 工具版本按照实际选择,本文中选择“maven3.5.3-jdk8-open”。 找到以下命令行,删除命令行前的#。 #mvn deploy -Dmaven.test.skip=true -U -e -X -B 找到以下命令行,在命令行前添加#。 mvn package -Dmaven.test.skip=true -U -e -X -B 在“发布依赖包到CodeArts私有依赖库”一栏勾选“配置所有pom”,并在下拉列表中选择与已项目关联的Maven私有依赖库。 单击“新建并执行”,执行构建任务。
  • 在Maven私有依赖库的版本视图中查看归档的组件 进入目标私有依赖库,找到通过构建任务上传的Maven私有组件。 参考上述步骤,在代码仓库中设置组件版本,可将多个版本组件归档至私有依赖库。 单击“版本视图”。 在包列表中,可以查看从编译构建中获取软件包的版本数和最新版本。 单击“包名”,页面将显示该软件包最新版本的概览信息。 选择“文件列表”页签,在列表中可以单击目标组件操作列中的,可将组件下载到本地。 用户在本地对组件修改并设置新的版本号后,在目标私有依赖库中,单击“上传组件”,可将最新版本的组件上传至私有依赖库。 版本视图中的包列表显示对应组件最新上传的版本并统计版本归档过的数量。
  • 处理方法 上传组件时,将文件“pom.xml”中“distributionManagement”元素下“repository_id”的值,替换为文件“settings.xml”中“server”元素下“repository_id”的值。 上传组件操作步骤如下: 进入“Maven私有依赖库”,在页面左侧导航中选择Maven类型仓库。 单击页面右上角“操作指导”弹出“私有依赖库使用配置”对话框。 根据配置指导配置本地Maven工具。 执行mvn deploy命令上传Maven项目。 在命令窗口进入maven项目“pom.xml”所在目录,检查文件“pom.xml”中“distributionManagement”元素下的“repository_id”的值是否与文件“settings.xml”中“server”元素下“repository_id”的值是否匹配。 执行如下命令,上传本地jar包: mvn deploy:deploy-file -DgroupId=com.huawei -DartifactId=aopalliance -Dversion=1.0 -Dpackagi=jar
  • 通过编译构建将snapshot组件发布到Maven私有依赖库 进入代码仓库,打开pom.xml文件,定义待上传组件的坐标信息(GAV信息)。 构建任务执行时会根据定义识别上传到私有依赖库的组件属性信息。 version:版本号,默认上传release组件。如果需要上传snapshot组件,version值以“-SNAPSHOT”结尾即可,如“1.0-SNAPSHOT”。 在“构建步骤Maven构建”中,编辑编译构建任务: 在“命令”框中:使用注释mvn package命令(在命令前加#),取消注释mvn deploy(删除其命令前的#)。 单击“发布依赖包到CodeArts私有依赖库”,勾选“配置所有pom”。 执行构建任务。 待任务执行成功后,即可在私有依赖库中找到生成的Maven组件。
  • 通过Maven CLI命令上传snapshot组件 进入“Maven私有依赖库”,在页面左侧导航中选择“snapshot”类型仓库。 单击右上角“操作指导”,弹出“私有依赖库使用配置”对话框。 。 根据配置指导配置本地Maven工具。 执行mvn deploy命令上传Maven项目。 在命令窗口进入maven项目“pom.xml”所在目录,输入如下命令,上传本地jar包: mvn deploy:deploy-file -DgroupId=com.huawei -DartifactId=aopalliance -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=D:\aopalliance-1.0-SNAPSHOT.jar -Durl={Maven Snapshot地址} -DrepositoryId=snapshots DgroupId、DartifactId、Dversion、Dpackaging:可根据需要自定义。 Dfile:本地jar包所在位置的绝对路径。 Durl:Maven Snapshot地址。单击图标即可获取。
  • 搜索私有组件 进入私有依赖库,单击页面左上方“高级搜索”。页面将显示“高级搜索”页面。 页面上方可以选择待查找组件的类型(默认为所有制品类型)。可通过两种方式进行搜索。 默认“文件名称”方式: 在搜索框内输入文件名称的关键字,单击,即可搜索组件。 在搜索结果列表中,单击“文件名”可以查看组件的详细信息。 选择“Checksums”方式: 单击搜索框左侧的下拉列表,选择“Checksums”(默认为文件名称)。 输入“MD5/SHA-1/SHA-256/SHA-512校验和”,单击也可以找到相应的组件。
  • 客户端下载RPM 以发布私有组件到RPM私有依赖库中发布的Rpm私有组件为例,介绍如何从Rpm私有依赖库中获取依赖包。 参考发布Rpm私有组件的2、3,下载Rpm私有依赖库配置文件。 打开配置文件,将文件中所有“{{component}}”替换为上传Rpm文件时使用的“{{component}}”值(本文档中该值为“hello”),并删除“rpm上传命令”部分,保存文件。 将修改后的配置文件保存到Linux主机的“/etc/yum.repos.d/”目录中。 执行以下命令,下载Rpm组件。其中,hello为组件的“component”值,请根据实际情况修改。 yum install hello
  • 客户端下载Docker组件 前提条件: 已安装Docker客户端。 私有依赖库中已创建 Docker仓库 。 在Docker客户端需要执行如下命令修改配置,忽略证书。 vi /etc/docker/daemon.json { "insecure-registries": ["url"] } {url}:仓库地址,如下图所示。 客户端下载Docker组件: 在本地客户端执行以下命令,下载Docker组件。 sudo docker pull {url}/${image_name}:${image_version} url:仓库地址。 image_name:组件名称。 image_version:组件版本。
  • 客户端下载Maven组件 使用客户端工具为Maven,请确保已安装JDK和Maven。 1. 从私有依赖库页面下载settings.xml文件,将下载的配置文件直接替换或按提示修改maven的settings.xml文件。 2. 使用以下命令进行客户端下载: mvn dependency:get -DremoteRepositories={repo_url} -DgroupId={groupId} -DartifactId={artifactId} -Dversion={version} -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
  • 客户端上传RPM 使用linux系统和yum工具,请确保使用linux系统,且已安装yum。 检查linux下是否安装yum工具 在linux主机中输入 rpm -qa yum 如出现如下内容 则证明机器已安装yum 登录软件开发生产线,进入Rpm私有依赖库。单击页面右侧“操作指导”。 在弹框中单击“下载配置文件”。 在Linux主机中执行以下命令,上传Rpm组件 curl -k -u {{user}}:{{password}} -X PUT https://{{repoUrl}}/{{component}}/{{version}}/ -T {{localFile}} 其中,“user”、“password”、“repoUrl”来源于上一步下载的配置文件中“rpm上传命令”部分。 user:位于curl -u与-X之间、“:”之前的字符串。 password:位于curl -u与-X之间、“:”之后的字符串。 repoUrl:“https://”与“/{{component}}”之间的字符串。 “component”、“version”、“localFile”来源于待上传的Rpm组件。以组件“hello-0.17.2-54.x86_64.rpm”为例。 component:软件名称,即“hello”。 version:软件版本,即“0.17.2”。 localFile:Rpm组件,即“hello-0.17.2-54.x86_64.rpm”。 完整的命令行如下图所示: 命令执行成功,进入私有依赖库,可找到已上传的Rpm私有组件。
  • 客户端上传Go组件 使用客户端工具为go,请确保已安装golang1.13及以上版本,且工程为go module工程。 Go Modules打包方式简介及包上传。 本文采用Go Modules打包方式完成Go组件的构建与上传。以下步骤中用到的username和password可以通过Go仓库的“操作指导”下载的配置文件中获取。 打包命令主要包括以下几部分: 在工作目录中创建源文件夹。 mkdir -p {module}@{version} 将代码源拷贝至源文件夹下。 cp -rf . {module}@{version} 压缩组件zip包。 zip -D -r [包名] [包根目录名称] 上传组件zip包与“go.mod”文件到私有依赖库中。 curl -k -u {{username}}:{{password}} -X PUT {{repoUrl}}/{filePath} -T {{localFile}} 根据打包的版本不同,组件目录结构有以下几种情况: v2.0以下版本:目录结构与“go.mod”文件路径相同,无需附加特殊目录结构。 v2.0以上(包括v2.0)版本: “go.mod”文件中第一行以“/vX”结尾:目录结构需要包含“/vX”。例如,版本为v2.0.1,目录需要增加“v2”。 “go.mod”文件中第一行不以“/vN”结尾:目录结构不变,上传文件名需要增加“+incompatible”。 下面分别对不同的版本举例说明。 v2.0以下版本打包。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo”,参数“version”自定义为1.0.0。因此命令如下: mkdir -p ~/example.com/demo@v1.0.0 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo@v1.0.0/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v1.0.0.zip”,因此命令如下: zip -D -r v1.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/@v/v1.0.0.zip”,“localFile”为“v1.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/@v/v1.0.0.mod”,“localFile”为“example.com/demo@v1.0.0/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -k -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v1.0.0.zip -T v1.0.0.zip curl -k -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v1.0.0.mod -T example.com/demo@v1.0.0/go.mod v2.0以上版本打包,且“go.mod”文件中第一行以“/vX”结尾。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo/v2”,参数“version”自定义为“2.0.0”。因此命令如下: mkdir -p ~/example.com/demo/v2@v2.0.0 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo/v2@v2.0.0/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v2.0.0.zip”,因此命令如下: zip -D -r v2.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/v2/@v/v2.0.0.zip”,“localFile”为“v2.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/v2/@v/v2.0.0.mod”,“localFile”为“example.com/demo/v2@v2.0.0/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/v2/@v/v2.0.0.zip -T v2.0.0.zip curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/v2/@v/v2.0.0.mod -T example.com/demo/v2@v2.0.0/go.mod v2.0以上版本打包,且“go.mod”文件中第一行不以“/vX”结尾。 以下图所示“go.mod”文件为例。 在工作目录中创建源文件夹。 命令行中,参数“module”的值为“example.com/demo”,参数“version”自定义为“3.0.0”。因此命令如下: mkdir -p ~/example.com/demo@v3.0.0+incompatible 将代码源拷贝至源文件夹下。 参数值与上一步一致,命令行如下: cp -rf . ~/example.com/demo@v3.0.0+incompatible/ 压缩组件zip包。 首先,使用以下命令,进入组件zip包所在根目录的上层目录。 cd ~ 然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v3.0.0.zip”,因此命令如下: zip -D -r v3.0.0.zip example.com/ 上传组件zip包与“go.mod”文件到私有依赖库中。 命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。 对于zip包,参数“filePath”为“example.com/demo/@v/v3.0.0+incompatible.zip”,“localFile”为“v3.0.0.zip”。 对于“go.mod”文件,参数“filePath”为“example.com/demo/@v/v3.0.0+incompatible.mod”,“localFile”为“example.com/demo@v3.0.0+incompatible/go.mod”。 因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改): curl -k -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v3.0.0+incompatible.zip -T v3.0.0.zip curl -k -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v3.0.0+incompatible.mod -T example.com/demo@v3.0.0+incompatible/go.mod
  • 客户端上传Maven组件 使用客户端工具为Maven,请确保已安装JDK和Maven。 从私有依赖库页面下载settings.xml文件,将下载的配置文件直接替换或按提示修改maven的settings.xml文件。 使用以下命令进行客户端上传,命令示例如下: 上传时需要到上传的pom文件所在目录下执行命令 mvn deploy:deploy-file -DgroupId={groupId} -DartifactId={artifactId} -Dversion={version} -Dpackaging=jar -Dfile={file_path} -DpomFile={pom_path} -Durl={url} -DrepositoryId={repositoryId} -s {settings_path} -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true 参数说明 DgroupId :上传的groupId DartifactId :上传的artifactId Dversion :上传的版本version Dpackaging :上传包的类型(jar,zip,war等) Dfile :上传实体文件所在的路径 DpomFile : 上传实体pom文件所在的路径(Release版本请注意:如果没有该参数,系统会自动生成pom,pom有特殊要求的请指定该参数) pom文件中的DgroupId ,DartifactId ,Dversion 要与外面的一致,否则报409。 DpomFile 和(DgroupId ,DartifactId ,Dversion) 可以二选一(即如果选择DgroupId ,DartifactId ,Dversion,则可以不用DpomFile) Durl :上传文件到仓库的路径 DrepositoryId :这个是settings配置的用户名密码所对应的id,如下图所示: 使用客户端工具为Gradle,请确保已安装JDK和Gradle。 从私有依赖库页面下载inti.gradle文件。 在本地项目下找到“build.gradle”文件,需要在gradle文件下添加以下命令,命令示例如下: uploadArchives { repositories { mavenDeployer {repository(url:"***") { authentication(userName: "{repo_name}", password: "{repo_password}") } //构造项目的Pom文件 pom.project { name = project.name packaging = 'jar' description = 'description' } } } } url:上传文件到仓库的路径,可在对应Maven私有依赖库界面,单击获取。 {repo_name}:从对应Maven仓库页面下载inti.gradle文件中获取username。 {repo_password}:从对应Maven仓库页面下载inti.gradle文件中获取password。 到本地项目所在目录下执行命令: gradle uploadArchives 返回对应的Maven仓库查看已上传的组件。
  • 上传NuGet私有组件 NuGet 包是具有 .nupkg 扩展的单个 ZIP 文件,用户可以使用 NuGet 包来共享组织或工作组专用的代码。 制品仓库服务支持将本地的NuGet包上传至私有依赖库。 一般建议使用以下规范打包命名NuGet本地文件。 软件名称-软件的主版本号.nupkg 例如:automapper.12.0.0.nupkg 进入私有依赖库,在左侧边栏中单击待上传私有组件的目标NuGet仓库。 单击“上传制品”,从本地选择待上传的NuGet文件,单击“上传”。 上传成功的组件显示在仓库列表中。 metadata目录为元数据保存目录,由组件名称名称命名。元数据目录无法删除,会跟随对应组件的删除或还原进行删除或新增。 package目录为组件保存目录。
  • 上传debian私有组件 上传debian私有组件时,需要配置以下5个参数: 参数 参数说明 Distribution 软件包发行版本。 Component 软件包组件名称。 Architecture 软件包体系结构。 Path 软件包的存储路径,默认上传至根路径。 File 软件包的本地存储路径。 上传成功之后,可在仓库组件列表中看到deb格式的安装包,同时在路径“dists”下生成对应的元数据,可用于debian安装。
  • npm组件介绍 npm全称Node Package Manager,是一个JavaScript包管理工具,npm组件包就是npm管理的对象,而npm私有依赖库就是管理和存储npm组件包的一个私有仓库。 npm组件包是由结构和文件描述组成: 包结构:是组织包中的各种文件,例如:源代码文件,资源文件等。 描述文件:描述包的相关信息,例如:package.json、bin、lib等文件。 包中的package.json文件是对项目或模块包的描述文件,它主要包含名称、描述、版本、作者等信息,npm install命令会根据这个文件下载所有依赖的模块。 package.json示例如下: { "name": "third_use", //包名 "version": "0.0.1", //版本号 "description": "this is a test project", //描述信息 "main": "index.js", //入口文件 "scripts": { //脚本命令 "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ //关键字 "show" ], "author": "f", //开发者姓名 "license": "ISC", //许可协议 "dependencies": { //项目生产依赖 "jquery": "^3.6.0", "mysql": "^2.18.1" }, "devDependencies": { //项目开发依赖 "less": "^4.1.2", "sass": "^1.45.0" } } 其中最重要的是name和version字段,这两个字段必须存在,否则当前包无法被安装,这两个属性一起形成了一个 npm 包的唯一标识。 name是 package(包)的名称。名称的第一部分如@scope/在私有依赖库是必选的,用作名称空间。一般通过搜索name来安装使用需要的包。 { "name": "@scope/name" } version是 package(包)的版本,一般为“x.y.z”格式。 { "version": "1.0.0" }
  • 上传PyPI组件 建议进入工程目录(该目录下需含有配置文件setup.py)执行以下命令将待上传组件打包成wheel格式(.whl)的安装包,安装包默认生成在工程目录的dist目录下;Python软件包管理工具pip仅支持wheel格式安装包。 python setup.py sdist bdist_wheel 上传组件时需要配置以下两个参数。 参数 说明 PackageName 请与打包时的配置文件“setup.py”中“name”保持一致。 Version 请与打包时的配置文件“setup.py”中“version”保持一致。 上传成功之后,可在仓库组件列表中看到whl格式的安装包,同时在路径“.pypi”下生成对应的元数据,可用于pip安装。
  • 上传Go组件 Go(又称Golang)是Google开发的一种编程语言。GoLang1.11开始支持模块化的包管理工具,模块是Go的源代码交换和版本控制的单元,mod文件用来标识并管理一个模块,zip文件是源码包。Go模块主要分为两种:v2.0以上版本,及v2.0以下版本,二者对Go模块的管理存在差异。 上传Go组件分为两步:上传zip文件与上传mod文件,需要分别输入以下参数。 参数 说明 zip path zip文件的完整路径。路径格式包括以下几种情况: v2.0以下版本:{moduleName}/@v/{version}.zip。 v2.0以上版本: zip包里有go.mod且路径里以/vN结尾:{moduleName}/vX/@v/vX.X.X.zip。 zip包里不含go.mod或go.mod第一行里不以/vN结尾:{moduleName}/@v/vX.X.X+incompatible.zip。 zip file zip文件的目录结构。包括以下几种情况: v2.0以下版本:{moduleName}@{version}。 v2.0以上版本: zip包里有go.mod且路径里以/vN结尾:{moduleName}/vX@{version}。 zip包里不含go.mod或go.mod第一行里不以/vN结尾: {moduleName}@{version}+incompatible。 mod path mod文件的完整路径。路径格式包括以下几种情况: v2.0以下版本:{moduleName}/@v/{version}.mod。 v2.0以上版本: zip包里有go.mod且路径里以/vN结尾:{moduleName}/vX/@v/vX.X.X.mod。 zip包里不含go.mod或go.mod第一行里不以/vN结尾:{moduleName}/@v/vX.X.X+incompatible.mod。 mod file mod文件内容。包括以下几种情况: v2.0以下版本:module {moduleName} v2.0以上版本: zip包里有go.mod且路径里以/vN结尾: module {moduleName}/vX zip包里不含go.mod或go.mod第一行里不以/vN结尾:module {moduleName}
  • 上传npm组件 私有依赖库支持上传tgz格式的npm组件包,上传时需要配置以下两个参数。 参数 说明 PackageName 请与打包时的配置文件“package.json”中“name”保持一致。 Version 请与打包时的配置文件“package.json”中“version”保持一致。 在上传组件时,PackageName需要以创建仓库时添加的路径列表中的路径开头,详细可见帮助指导中的“仓库配置说明”。 例如: 创建npm仓库时,添加的路径为“@test”。 上传组件到该仓库时,“PackageName”中的“@test”存在于新建仓库时的路径列表中,可以成功上传。若使用其他不存在与列表中的路径,如“@npm”,则会上传失败。 上传成功之后,可在仓库组件列表中看到tgz格式的组件包,同时在路径“.npm”下生成对应的元数据。
  • 上传RPM私有组件 RPM(RedHat Package Manager),是由Red Hat公司提出,被众多Linux发行版本所采用,是一种以数据库记录的方式来将所需要的软件安装到到Linux系统的一套软件管理机制。 一般建议使用以下规范打包命名RPM二进制文件。 软件名称-软件的主版本号.软件的次版本号.软件的修订号-软件编译次数.软件适合的硬件平台.rpm 例如:hello-0.17.2-54.x86_64.rpm。其中,“hello”是软件名称,“0”是软件的主版本号,“17”是软件的次版本号,“2”是软件的修订号,“54”是软件编译次数,“x86_64”是软件适合的硬件平台。 软件名称 主版本号 次版本号 修订号 编译次数 适合的硬件平台 hello 0 17 2 54 x86_64 注:上传组件时需要配置以下两个参数 参数 说明 Component 组件名称。 Version RPM二进制包的版本。 进入私有依赖库,在左侧边栏中单击待上传私有组件的目标仓库。 单击页面右侧“上传制品”。 在弹框中输入组件参数,并上传文件,单击“上传”。 上传成功之后,可在仓库组件列表中看到RPM二进制包,同时在组件名称路径下生成对应的元数据“repodata”目录,可用于yum安装。
  • 为私有依赖库聚合仓添加代理 已创建聚合仓,可参考新建私有依赖库。 进入私有依赖库,在左侧边栏中选择对应聚合仓的仓库名称。 单击页面右侧“代理设置”。 单击“添加代理”,选择“公开源”或“自定义源”。 用户可以在“自定义源”中选择“第三方仓库”或“华为本地仓库”两种代理类型。 第三方仓库(设置第三方仓库或者由用户自行创建的仓库为代理源): 用户选择第三方仓库后,单击“代理名称”的下拉列表,在下拉列表中选择自定义代理源。新建自定义代理源请参考自定义代理源。 华为本地仓库(设置华为本地仓库为代理源,用户只能选择自己作为仓库管理员的本地仓库) 用户在镜像仓名称的下拉列表中,可以选择私有依赖库中的本地仓库。 单击“确定”,完成添加代理。 单击操作列中的,可以修改镜像仓名称、代理账号、代理密码。 用户无法编辑华为本地仓库的代理源。 单击操作列中的,可以删除对应的代理。
  • 仓库配置说明 除了公共配置信息外,每种格式仓库对应了不同的配置项,详情如表2所示。 表2 不同格式仓库相应配置项说明 仓库格式 配置项 是否必填项 说明 Maven 版本策略 是 包括“Release”与“Snapshot”两个选项。 推荐全部选择,这样系统将生成“Release”和“Snapshot”两个仓库;也可以根据自己团队的需求至少选择一个,这样系统将生成一个“Release”或者是“Snapshot”仓库。 添加路径 否 输入需要添加的路径,单击“+”。 构建时,只允许以该路径开头的Maven文件上传到私有库。 npm 添加路径 否 输入需要添加的路径,单击“+”。 构建时,只允许以该路径开头的npm文件上传到私有库。 Go 添加路径 否 输入需要添加的路径,单击“+”。 构建时,只允许以该路径开头的go文件上传到私有库。 PyPI 添加路径 否 输入需要添加的路径,单击“+”。 构建上传的PyPI依赖包时,确保其配置文件“setup.py”中的“name”值与添加的路径匹配。 RPM 添加路径 否 输入需要添加的路径,单击“+”。 构建时,只允许以该路径开头的RPM二进制文件上传到私有库。 Conan 添加路径 否 输入需要添加的路径,单击“+”。 只允许在本地客户端上传以该路径开头的Conan文件到私有库。 原生-Docker 添加路径 否 输入需要添加的路径,单击“+”。 镜像推送时,只允许以该路径开头的镜像文件推送到私有库。 CocoaPods 添加路径 否 输入需要添加的路径,单击“+”。 构建时,只允许以该路径开头的CocoaPods类型文件上传到私有库。
  • 配置私有依赖库覆盖策略 通过设置仓库是否允许上传相同路径的制品并将原包覆盖等策略,用户可以更规则性的管控私有依赖库的制品上传机制。 进入私有依赖库,在左侧边栏中单击对应的仓库名称。 单击页面右侧“设置仓库”,显示仓库的基本信息,选择“覆盖策略”页签。 图1 设置仓库的覆盖策略 允许覆盖:允许上传相同路径的制品(默认选择),上传后将会覆盖原包。 禁止覆盖:禁止上传相同路径的制品。 只读:禁止上传、更新、删除制品。可以下载已上传的制品。 设置完成后,系统将自动保存。 父主题: 管理私有依赖库2.0
  • 在仓库视图中查看软件包 在仓库视图页面可以查看并编辑软件包详情,软件包详情包括三方面:概览、构建元数据、构建包归档、制品安全信息。 进入软件发布库,选择“仓库视图”页签,单击软件包名称,页面展示所选软件包详情。通过四个页签“概览”、“构建元数据”、“构建包归档”、“制品安全”展示软件包详情。 概览:展示仓库名称、相对路径、下载地址、发布版本、创建人、创建时间、修改人、修改时间、大小、校验和等信息。 单击,可以修改软件包的发布版本(由编译构建归档的软件包发布版本默认为构建序号)。 构建元数据:展示生成软件包的构建任务、大小、构建序号、构建者、代码库、代码分支。单击“构建任务的名称”可以链接到编译构建任务。 构建包归档:展示通过构建任务上传的软件包的归档记录,单击,可以下载软件包。 制品安全:页面展示了对该软件包进行安全扫描的结果,详情请参考制品安全扫描。
  • 变更CodeArts Artifact套餐规格 CodeArts Artifact支持变更套餐规格,变更影响请参见变更配置后对计费的影响。 登录制品仓库控制台。 找到CodeArts Artifact套餐,单击操作列中的“变更”。 根据需要选择变更商品、变更类型,勾选同意声明,单击“下一步:确认订单”。 若变更类型选择“续费变更”,则还需要选择续费时长。 确认订单内容:若需要修改,单击“上一步”;若确认无误,单击“下一步”。 根据页面提示完成支付。
  • 购买须知 在CodeArts支持的区域内,各区域独立开通购买、独立计费。 您可以购买制品仓库单服务套餐,或者开通/购买软件开发生产线服务组合套餐,体验一站式、全流程、安全可信的软件开发生产线。 购买制品仓库服务需要您拥有华为账号,或拥有Tenant Administrator权限的 IAM 用户账号,配置权限策略方法请参考创建用户组并授权。 若已经购买了CodeArts套餐,则不能再单独购买制品仓库服务。
  • 规则说明 2020年10月16日前,未在CodeArts某个区域下产生过费用的用户,按照新版计费规则,需在该区域开通/购买CodeArts或单独购买制品仓库服务后使用。 在该区域内产生过费用的用户,延续旧版计费规则,可参考购买服务在该区域开通制品仓库服务包年/包月套餐。 例如: 用户于2020年3月在“华北-北京四”购买了半年期的包月套餐。由于疫情影响业务,套餐到期后关闭了CodeArts服务;2020年10月20日将重新启用CodeArts。 若用户仍使用“华北-北京四”,可以购买旧版套餐使用。 若用户使用其它区域,则需购买CodeArts或者制品仓库服务新版计费。
  • 在私有依赖库中管理仓库权限 用户在创建仓库后,添加的项目成员和仓库角色对应关系如下: 项目创建者、项目经理对应仓库管理员。 开发人员、测试经理、测试人员、运维经理对应仓库开发者。 参与者、浏览者、自定义角色对应仓库浏览者。 为私有依赖库成员添加/删除权限的操作步骤如下: 进入私有依赖库页面,在仓库列表中选择目标仓库。 在页面右侧单击“设置仓库”。 选择“仓库权限”页签,已经添加的仓库成员显示在列表中。 添加成员。 单击页面左上方“添加成员”,在弹框中勾选成员,单击“下一步”。 图1 添加成员 为成员分配仓库角色。 可以在仓库角色的下拉栏中选择“仓库管理者”、“仓库开发者”、“仓库浏览者”。 图2 为成员分配仓库角色 单击“确定”,完成添加仓库成员和仓库角色配置,新添加的成员将显示在列表中。 在成员列表中,勾选多个仓库成员,单击下方“仓库角色”可以批量配置仓库角色。 图3 批量配置仓库角色 仓库角色对应的操作权限如表1所示。 表1 私有依赖库角色权限表 操作/角色 租户管理员 非租户管理员 仓库管理员 开发者 浏览者 仓库管理员 开发者 浏览者 新建私有依赖库 √ √ √ × × × 编辑私有依赖库 √ √ √ × × × 管理仓库与项目关联 √ √ √ × × × 上传私有组件 √ √ × √ √ × 下载组件 √ √ √ √ √ √ 删除组件 √ √ × √ √ × 还原组件 √ √ × √ √ × 彻底删除(组件) √ √ × √ √ × 删除仓库 √ × × × × × 还原仓库 √ √ × √ √ × 彻底删除(仓库) √ × × × × × 清空回收站 √ √ √ × × × 还原所有 √ √ √ × × × 管理用户权限 √ √ √ √ × ×
  • 通过版本视图查看私有组件 私有依赖库支持将不同类型私有组件按照版本维度进行归类展示。在版本视图的列表中,提供按制品包名称和版本号进行过滤展示,提供按照更新时间对文件进行排序。 进入私有依赖库页面。 在页面左上方选择“版本视图”页签,单击左侧列表中的仓库名称,页面展示该类型仓库下的软件包版本列表。为不同类型私有组件设置版本请参考通过私有依赖库页面上传/下载私有组件。 不同版本的同名软件包放在一个文件下。单击“包名”,页面将显示该软件包最新版本的概览信息。 单击“版本数”,页面将展示对应软件包的版本列表。 单击“版本号”,页面将显示该软件包的概览信息和文件列表。在文件列表中,单击“文件名称”,页面将跳转到软件包所在的存储位置。
共100000条