云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

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

关于Rust编程语言

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


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

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

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

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

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

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

支持的货物版本

Artifactory支持Cargo版本1.49.0及以上。

Git对货物仓库的支持

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

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

集成的好处

配置

局部存储库

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

先决条件

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

本地存储库布局

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

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

在本地仓库中拉和解拉板条箱

Artifactory支持在本地存储库中删除和删除板条箱。

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

Yank/ unyank智能存储库

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

远程存储库

先决条件

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

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



解决货物包装问题

解决货物包装:

  1. 在应用程序模块中,导航到Artifactory |工件
  2. 在Artifact Tree Browser中,选择一个Cargo存储库并单击给我介绍

    密码认证要求

    当您需要在JFrog平台对面重新进行鉴权时,才会显示“Type Password”框。对于应用外部身份验证方法(如SAML或OAuth)的用户,该选项在UI中不可用。


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

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

使用Rust命令行解析货物包

  1. 在应用程序模块中,导航到Artifactory |工件
  2. 在Artifact Tree Browser中,选择一个Cargo存储库并单击给我介绍

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

    货物安装
    装货箱

    解决多个货物注册

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

身份验证:允许匿名下载

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



展开货物包裹

可以使用Cargo Client将包部署到本地Cargo存储库部署UI中的特性,或者使用cURL请求。

通过货物客户端部署包(推荐)

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

货物安装
货物发布或货物发布——注册(注册编号)

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

货物安装
cargo publish——令牌"Basic (base64 of user:password)"或cargo publish——令牌"持牌人(access token)"

通过UI部署包

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

目标路径

与下面的布局保持一致以支持此功能是很重要的。

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

使用cURL部署包

使用cURL请求部署包。

搬运货箱
curl -uadmin:密码-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平台的用户界面
    • 对于现有存储库,在应用标志后重新索引。
    • 对于新的存储库,不需要初始化时间,因为不需要在后台创建Git克隆。
规则及指引

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

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

给我介绍

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

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

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

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

所有客户端呼叫需要包括- z sparse-registry(或- z http-registry在旧的实现中)。例如:

  • cargo publish -Z sparse-registry——registry artifactory——allow-dirty
  • cargo build -Z稀疏注册表
  • cargo yank——版本0.1.4其他-Z稀疏注册表——注册artifactory
  • 没有标签
版权所有©2022 JFrog Ltd.