云客户?
免费开始>
在MyJFrog中升级>
云的新功能>





概述

从JFrog Artifactory 7.17.4开始,Rust编程语言支持Cargo注册表,使您可以完全控制部署并解析Cargo包。Cargo下载Rust包的依赖项,编译包,生成可分发包,并将它们上传到crates.io, Rust社区的包注册表。你可以为这本书做贡献GitHub

关于Rust编程语言

Rust是一种为性能和安全而设计的编程语言,强调安全并发性。crate是Rust中的编译单元。使用Cargo,您可以在crates.io,用工作空间组织大型项目,从crates.io并使用自定义命令扩展Cargo。


Artifactory的货物仓库提供以下好处:

  • 具有细粒度访问控制的安全和私有本地Cargo存储库

  • 代理远程Cargo资源和缓存下载的Cargo包的能力,使您独立于网络2022世界杯阿根廷预选赛赛程和远程资源

  • 托管在Artifactory本地存储库中的Cargo包的元数据计算

  • 版本管理:存档上传到本地存储库的软件包的旧版本

  • 源代码和二进制文件管理

支持的Cargo版本

Artifactory支持Cargo 1.49.0及以上版本。

Git对货物仓库的支持

由于Cargo客户端要求Cargo注册表是Git存储库,因此Artifactory中应用了以下Git支持:

  • 一个内部.文件夹存在,以反映每个Cargo存储库的索引.文件。这个文件夹是重新创建后,每驯鹿的过程。
  • 一个内部git目录中的数据Artifactory目录已为每个Cargo存储库添加。这是一个本地克隆,将在每次重新启动或初始化存储库之后重新创建。
页面内容

集成的好处

配置

局部存储库

若要启用Cargo元数据的计算,请在Administration模块中转到存储库|存储库|当地的并选择货物随着包类型创建本地存储库时。

先决条件

在设置本地存储库之前,您需要为Artifactory实例配置一个Custom Base URL。有关更多信息,请参见一般设置

本地存储库布局

你需要维护特定的路径结构来管理上传到Cargo本地存储库的Cargo包

默认情况下,Cargo Source包会自动上传到相对路径:箱/ {package_name} / {package_name} - {version} .crate

在本地仓库中拉拽和非拉拽板条箱

Artifactory支持在本地存储库中抽取和解抽取crate。

货物猛拉/ Un-yank
cargo yank hello_world -vers 0.1.4 -token“承载(令牌)”——撤销

撤销/撤销智能存储库

要在智能远程存储库/复制中同步提取,必须同步属性。

远程存储库

先决条件

在设置远程存储库之前,您需要为需要支持的Artifactory实例配置一个Custom Base URL。有关更多信息,请参见一般设置

您可以创建远程Cargo存储库来代理和缓存远程存储库或其他Artifactory实例。
注册网址已添加到Cargo远程存储库,以反映索引(git)位置:



解决货物包装问题

解决货物包装:

  1. 在Application模块中,导航到人工制品|人工制品
  2. 在Artifact Tree Browser中,选择Cargo存储库并单击帮我介绍

    密码认证要求

    只有当您需要对JFrog平台执行重新身份验证时,才会显示“Type Password”框。对于应用外部身份验证方法(如SAML或OAuth)的用户,UI中将不提供此选项。


    为API调用设置凭据,例如发布猛地一拉,将以下部分添加到Cargo主目录下的凭据文件(例如~ / .cargo /凭证):

    (注册表。artifactory] token = "承载者< token >"
  3. 复制Cargo代码片段以发布Cargo包或配置Rust客户端以解析所选包中的工件存储库

使用Rust命令行解决货物包问题

  1. 在Application模块中,导航到人工制品|人工制品
  2. 在Artifact Tree Browser中,选择Cargo存储库并单击帮我介绍

  3. 使用Cargo构建或安装命令安装包。

    货物安装
    装货箱

    解决多个货物注册

    要解析多个注册表,请添加此可选标志——注册(registryId)

身份验证:允许匿名下载

Cargo客户端不发送任何运行安装和搜索命令时的身份验证头。
选择“允许匿名下载和搜索”来阻止匿名请求,但仍然允许匿名Cargo客户端下载和执行搜索,从而专门为特定存储库的端点授予匿名访问权限。



部署货物包

可以使用Cargo Client将包部署到本地Cargo存储库部署功能在UI,或者使用cURL请求。

使用Cargo客户端部署包(推荐)

要部署包,请运行下面的Cargo发布命令。

货物安装
货物发布或货物发布——注册表(注册表id)

要覆盖该存储库的凭据,运行以下命令。

货物安装
cargo publish -token“Basic (base64 of user:password)”或cargo publish -token“Bearer (access token)”

使用UI部署包

您可以拖放或选择要上传的Cargo包部署在UI中。Artifactory将自动识别该包是源包还是二进制包。

目标路径

为了支持这个特性,使用下面的布局是很重要的。

箱/ {package_name} / {package_name} - {version} .crate

使用cURL部署包

使用cURL请求部署包。

布置货箱
curl -uadmin:password -XPUT "http://localhost:8082/artifactory/cargo-local/crates/package_1.0.0。-T package_1.0.0.crate

当直接部署(PUT请求到特定路径)时,请确保目标路径是有效的Cargo路径。

箱/ {package_name} / {package_name} - {version} .crate

注意,将包部署到不同的路径将不会将包标识为Cargo包,也不会调用元数据索引。


查看单个货物包裹信息

Artifactory允许您直接从UI查看Cargo包的选定元数据。

工件存储库浏览器,选择本地的Cargo存储库,然后向下滚动以查找并选择要检查的包。

元数据显示在货物信息选项卡,或视图。


重新索引货物存储库

您可以通过UI或使用REST API触发本地Cargo存储库的异步重新索引。

这也将重新索引git索引,因此也将索引远程存储库。

工件树浏览器,选择Cargo存储库,右键单击并选择重新计算指数从列表中。需要管理员权限。

要通过REST API重新索引Cargo存储库,请参考计算货物仓库元数据


利用稀疏索引建立货物索引

从Artifactory版本7.46.3开始,支持Cargo稀疏索引。稀疏索引允许您控制输入索引数据库的连接。稀疏索引还允许:

  • 更快的构建时间,因为不涉及Git克隆/拉取
  • 使用远程货物存储库的代理。

Cargo稀疏索引从Cargo 1.60及更高版本开始支持,目前是一个夜间功能。

启用Cargo稀疏索引:

  • 对于全局的所有Cargo存储库,在存储库配置JSON,加入“cargoInternalIndex”:真的国旗。
  • 对于单个Cargo存储库,选择启用稀疏索引支持“Cargo Repository Basic”选项卡的“常规设置”部分中的复选框JFrog平台UI
    • 对于现有的存储库,在应用标志后重新索引。
    • 对于新的存储库,不需要初始化时间,因为没有在后台创建Git克隆。
规则及指引

要使用官方的Rust远程存储库URL,请使用URL和注册库URL创建一个远程存储库https://index.crates.io

有关更多信息,请参见生锈的文档

帮我介绍

要将Cargo客户机配置为使用稀疏索引与JFrog Artifactory相对工作,请编辑Cargo主目录下的配置文件(例如~ / .cargo / config.toml):

  • 对于本地存储库,编辑为:

    (注册表。artifactory] index = "sparse+https://RTUTL/artifactory/api/cargo/cargo-local/index/"
  • 对于远程存储库,编辑为:

    【来源。artifactory-remote注册表= "sparse+https://admin:password@RTURL/artifactory/api/cargo/cargoh/index/"[来源]replace-with = "artifactory-remote"

所有客户端调用都需要包含- z sparse-registry(或- z http-registry在旧的实现中)。例如:

  • 发布-Z稀疏注册表——注册表artifactory——允许-脏
  • cargo build -Z稀疏注册表
  • 其他-Z稀疏注册表——注册表artifactory
  • 没有标签
版权所有©2022 JFrog Ltd.