有问题吗?想要报告问题?联系JFrog支持

跳到元数据的末尾
进入元数据的开始

概述

从3.9版开始,Artifactory支持Git大文件存储(LFS)在Artifactory的知识库之上现有的支持用于高级工件管理。

Artifactory对Git LFS的支持为您提供了一个功能齐全的LFS服务器,可以与Git LFS客户端一起工作。

来自Git存储库的LFS blobs可以在Artifactory中推送和维护,提供以下好处:

  • 性能:
    使用Artifactory在本地或公司网络上的文件存储,可以显著减少文件下载时间。在考虑构建可能需要的文件数量时,这可以大大减少构建时间并简化工作流程。
  • 对二进制文件的可靠且一致的访问:
    使用Artifactory作为您的LFS存储库,开发和构建所需的所有资源都存储在您自己的本地或公司2022世界杯阿根廷预选赛赛程网络和存储中。这使您独立于外部网络或任何第三方服务。
  • 与远程Git LFS存储库共享二进制资产
    通过在其他Artifactory实例或GitHub上代理Git LFS存储库,在组织内的团队之间共享您的视频、音频、图像文件和任何其他二进制资产。
  • 使用单个URL上传和下载二进制资产
    使用虚拟Git LFS存储库作为二进制资产的源和目标。通过包装本地和远程存储库,并在虚拟Git LFS存储库中定义部署目标,您的Git LFS客户端只需要将所有使用二进制资产的工作暴露给该单个虚拟存储库。

  • 安全和访问控制:
    Artifactory允许您定义哪些用户或用户组可以访问您的LFS存储库,并提供您可以配置的完整权限集。您可以控制开发人员将二进制资产部署到哪里,是否可以删除资产等等。如果您关心的是对服务器的访问,那么Artifactory提供了与最常见的访问协议(如LDAP、SAML、Crowd等)的完全集成。
  • 所有二进制文件都有一个解决方案:
    O既然你使用Artifactory存储媒体资产,就没有必要使用第三方LFS提供商。Artifactory现在可以处理这些文件以及它已经为您管理的所有其他二进制文件。

页面内容


配置

局部存储库

创建Git LFS本地存储库并启用计算LFS包元数据集GitLfs随着包装类型。

远程存储库

您可以创建一个Git LFS远程存储库代理GitHub上的LFS存储库,或其他Artifactory实例上的Git LFS本地存储库。如果您正在将Git LFS本地存储库代理到Artifactory的另一个实例上,那么您可以享受智能远程存储库

要定义Git LFS远程存储库,请创建一个新的远程存储库,将其Package Type设置为Git LFS,并设置要代理的存储库的URL。

Git LFS远程存储库

虚拟存储库

Artifactory中定义的虚拟存储库聚合来自本地和远程存储库的包。
这允许您从为虚拟存储库定义的单个URL访问本地托管的二进制资产和远程代理的git LFS存储库。

创建一个Git LFS虚拟存储库集Git LFS为其包类型,并选择底层本地和远程Git LFS存储库存储库部分。

确保你也设置了默认部署存储库因此,您既可以从这个存储库下载,也可以上传到这个存储库。

Git LFS虚拟存储库

设置Git LFS客户端指向Artifactory

为了让您的客户端上传和下载LFS blobs从artifactory(lfs)子句应添加到。lfsconfig你的Git存储库的以下格式的文件。

.lfsconfig
[lfs] url = "https:///api/lfs/< lfs repo key>"例如:[lfs] url = "https://localhost:8080/artifactory/api/lfs/lfs-local"

你也可以在你的repo上为不同的远程设置不同的LFS端点(由Git LFS客户端支持),例如:

.git/为远程配置不同的LFS url
[remote "origin"] url = https://..。Fetch = +refs/heads/*:refs/remotes/origin/* lfsurl = "http://localhost:8081/artifactory/api/lfs/lfs-local"

复制这些条款使用设置我

如果在Tree Browser中选择GitLFS存储库并单击给我介绍,Artifactory将在对话框中显示这些子句,您可以从对话框中简单地复制和粘贴它们。

使用代理和HTTPS

当使用HTTPS(即在代理之后)使用自签名证书时,您的配置可能还需要您添加以下内容:

.gitconfig HTTP部分
[http] sslverify = false
在以这种方式绕过安全协议之前,请始终咨询系统管理员。

当在代理后面运行Artifactory时,定义一个基url通常需要(取决于配置)由于操作
Git LFS客户端接收重定向url到确切的上传\下载位置的blobs。

LFS存储库必须在路径中加上api/ LFS前缀

当通过Artifactory访问Git LFS存储库时,存储库URL必须加上前缀api / lfs在路上,配置复制时除外

例如,如果您使用Artifactory独立或作为本地服务,您将使用以下URL访问您的LFS存储库:

http://localhost:8081/artifactory/api / lfs /<库关键>

或者,如果你使用SaaS, URL将是:

https:// < server name > .jfrog。io / <服务器名> /api / lfs /<库关键>


当配置复制时,引用存储库的可浏览url,即;

http://localhost:8081/artifactory> / <库关键


在没有匿名访问的情况下使用Artifactory

默认情况下,Artifactory允许匿名访问Git LFS存储库。定义在管理模块下安全|一般.详情请参阅允许匿名访问
控件,如果希望能够跟踪用户如何与存储库交互,则需要取消选中允许匿名访问设置。这意味着用户需要输入用户名和密码。
Git LFS客户端在访问Artifactory LFS repo时将要求提供凭据——如果允许匿名访问,则只需输入空白凭据,否则您应该输入您的Artifactory用户名和密码(而不是Git用户名和密码)。

为了使身份验证过程自动化,您可以使用Git凭证助手来存储这些文件,并让Git LFS客户端自动进行身份验证。

Git默认以纯文本的形式存储凭据

在使用Git凭据助手时,您应该采取额外的措施来保护您的用户名和密码


SSH认证

从4.4版开始,Artifactory支持通过SSH验证Git LFS客户端。

使用Git LFS客户端时,通过SSH进行身份验证,请执行以下步骤:

  • 确保Artifactory正确地为SSH配置了配置服务器认证
    SSH服务器设置
  • 在用户配置文件的SSH部分上传您的SSH公钥如在配置用户认证
  • 配置Git LFS客户端如下:
    • 更新known_hosts文件使用Artifactory服务器公钥。该文件位于~ / . ssh / known_hosts(下面还有一个系统范围的文件/etc/ssh/known_hosts).这应该采取以下格式:
      []: < Artifactory服务器ssh公钥内容>
      例如,

      [myartifactory.company.com]:1339 ssh-rsa AAAAB3Nza…PC0GuTJT9TlaYD user@domain.com
    • 更新你的.lfsconfig在存储库级别(不是全局级别)的文件,如下所示:
      ssh: / / USERNAME@主持人:美元美元港口/ artifactory / < repoKey >
      例如,

      Url = "ssh://git@myartifactory.company.com:1339/artifactory/lfs-local"

Artifactory在线物理服务器

如果您正在使用Artifactory SaaS上的专用服务器,并希望通过SSH进行身份验证,请联系support@www.si-fil.com


元数据

由于Git LFS客户端只提供了关于上传的blob的有限数据(只有它的sha256校验和,或“OID”,以及它的大小),Artifactory不存储或处理LFS blob的任何元数据。

您可以根据自己的方便在blob上设置属性,但这需要额外的逻辑来从存储在Git存储库中的实际指针推断存储在artifactory中的sha256名称的文件。


存储

Artifactory以类似于Git LFS客户端的方式存储LFS blobs,使用提供的sha256校验和。

Git LFS blobs将存储在如下路径下< lfs_repo > /对象/广告/1 b/ ad1b8d6e1cafdf33e941a5de462ca7edfa8818a70c79feaf68e5ed53dec414c4

在哪里广告而且1 b分别是blob名称中的第1、2、3和4个字符。

从LFS端点下载失败时的Git LFS行为

如果从LFS端点下载blob失败(例如,错误的凭证,网络错误等),Git LFS客户端将下载它在远程Git存储库中创建的指针文件。

这将导致本地repo中的实际文件被LFS客户端创建的指针所取代名字相同并导致任何数量的问题,这种行为可以引起。

这是跟踪的LFS客户端的一个限制发行89