JFrog帮助中心

我们的新传送门很快就要来了!
文档+知识库





JFrog帮助中心-一个全新的知识体验即将到来!



概述

JFrog对云存储的支持提供了大量可伸缩性的所有好处,并允许二进制存储有效地增长到所需的任何规模,并容纳任何大小的二进制文件。JFrog平台可以进一步优化从云存储下载大型二进制文件,例如Docker映像,通过将其功能委托为注册表,这样它就可以用一个链接响应下载请求,通过该链接,请求客户端可以直接从相应的云存储下载二进制文件。

当存储库被配置为重定向下载时,请求Artifactory以获取存储库中托管的工件的客户端会收到一个HTTP 302位置头,该头包含签署的URL到云存储位置进行直接下载。然后,客户端可以使用该签名URL直接从云存储下载二进制文件,而不需要先通过Artifactory。

直接从云存储下载二进制文件:

  • 提高效率并减少下载延迟,因为二进制对象是在一个阶段中直接从云中获得的,而不是必须先通过Artifactory的缓存。
  • 减少了对本地存储的需求,因为Artifactory的本地缓存不需要容纳来自云的大型二进制对象。
  • 增加Artifactory的注册表操作时间,因为可以将更多的计算能力用于计算元数据,而不是等待下载请求完成的线程

需求

版本和平台

直接云存储下载适用于以下JFrog订阅:

  • 当您的Artifactory二进制存储配置为AWS S3或谷歌云存储时,自托管Enterprise+或Edge许可证。
  • 所有云订阅

支持的软件包格式

JFrog Artifactory正式支持直接云存储下载以下类型的本地存储库:Generic, Helm, Docker, Maven, RPM, Npm, Debian(从客户端版本9支持),PyPI, Bower, CRAN, Composer, Conan, Gradle, Vagrant和Git LFS

要使用curl、wget和Gradle客户端,请确保有一个受支持的客户端版本。参考这个知识库文章获取更多信息。

页面内容


配置

配置Artifactory直接下载云存储,请按照以下步骤执行:

  1. 配置Artifactory文件存储允许直接下载。
  2. 指定存储库应该重定向请求直接下载。
  3. 微调配置直接下载参数。
  4. 控制签名URL下载
  5. 配置防火墙允许直接下载。
  6. 添加要使用的必要配置CloudFront(AWS S3可选)。


1.配置Artifactory文件存储

如下文所述配置文件存储,您可以使用JFROG_HOME美元/ artifactory / var / etc / artifactory / binarystore.xml文件。

启用云存储直接下载,请参考中设置以下参数S3二进制提供程序谷歌云存储二进制提供程序你的binarstore .xml文件。

enableSignedUrlRedirect
将该值设置为true以启用该特性。
signedUrlExpirySeconds

默认值:30(可选)

指定向请求客户端提供签名URL以便从云存储直接下载的有效秒数。

下面的代码片段显示了这些参数的示例你的binarystore.xml文件:

true 30 300

2.指定直接下载的存储库

Artifactory可以配置为在存储库级别重定向直接下载的请求(没有自动重定向所有请求的全局配置)。这允许您同时支持支持下载重定向响应(HTTP 302)的客户端和不支持下载重定向响应的客户端。所有存储库类型(本地、远程、虚拟和通用存储库)都支持下载重定向。对于配置为重定向的本地和远程存储库,所有请求都将被重定向。对于虚拟存储库,这取决于聚合的本地存储库或远程存储库最终提供所请求的工件。如果该存储库被配置为重定向,那么请求的客户端将接收相应的重定向响应,否则,Artifactory将获取所请求的工件并像往常一样将其提供给客户端,而不需要重定向。

远程存储库必须配置为本地存储工件

如果所请求的工件在本地可用,Artifactory只能将请求重定向到直接云存储下载。对于本地存储库,这是一种自然状态,但是对于远程存储库,您可以通过取消选择选项,将存储库配置为NOT在本地缓存工件本地存储工件复选框中的存储库配置的Advanced选项卡(或通过设置storeArtifactsLocally = false创建更新使用REST API的存储库)。因此,对于远程存储库,您需要确保存储库被配置为本地存储工件(例如,本地存储工件复选框选中,或storeArtifactsLocally = true).如果不这样做,将生成一个错误。

您可以配置Artifactory使用UI、REST API和YAML配置文件重定向直接下载的请求。

界面方式

若要配置本地或远程存储库以重定向直接下载的请求,请设置启用云存储直接下载选中存储库配置的Advanced选项卡中的复选框。

使用REST API

若要配置本地或远程存储库,以使用REST API重定向直接下载的请求,请设置downloadRedirect属性为真正的(默认情况下,).例如:

curl -u admin:password -X POST -H "Content-Type: application/json" -d '{"rclass":"local", "downloadRedirect": true}' http://localhost:8080/artifactory/api/repositories/s3-generic

或者,您可以设置downloadRedirect参数中的存储库配置JSON这是真的。

使用YAML配置文件

如果你是使用YAML文件配置存储库,你可以使用downloadRedirect属性。

例如,配置一个名为generic-remote直接下载:

-X PATCH -H "Content-Type: application/yaml" "http://localhost:8080/artifactory/api/system/configuration" -T remote.yaml . curl -u admin:password -X PATCH -H "Content-Type: application/yaml

在哪里remote.yaml是:

remotereposores: generic-remote: downloadRedirect: enabled: true

3.调优直接下载

直接云存储下载特性的好处之一是,当必须同时为大型工件提供多个下载请求时,它减少了Artifactory注册中心的负载。当下载的工件确实很大时,就会实现这个好处。属性可以将下载请求重定向到直接云存储下载的最小工件大小设置为微调此功能最小直接云存储下载大小参数(自托管客户的默认值为1 MB)。

4.控制签名URL下载(适用于S3)

你可以通过配置下面的头来控制下载:X-JFrog-Download-Redirect-To

支持以下方法来控制签名URL重定向:

  • 没有一个:直接下载发生没有signedUrl重定向。
  • S3:即使CloudFront存在,也从S3进行下载。
  • CF (CloudFront):如果CloudFront可用,则从CloudFront下载。默认情况下,如果配置了CloudFront,并且是有效的二进制提供程序,则应该从CloudFront下载。

5.穿越防火墙

当直接云存储下载被启用时,这意味着所请求的工件实际上将从S3或CloudFront域而不是从Artifactory的域提供服务。由于这些域在Artifactory提供的签名url中是不变的,因此您应该将它们添加到组织的防火墙中,以支持顺利和不受阻碍的下载。你应该添加的域名是:

S3:https:// < bucketName >。s3.amazonaws.com/

是在您的S3二进制提供程序中指定的相应属性的值binarystore.xml文件。例如,

https://data1234.s3.amazonaws.com/myStoreOfBinaries/60/60b27f004e454aca92b0958209cck4829ec52430?response-content-disposition=attachment%3Bfilename%3D%22connector-java-5.1.4.txt%22&AWSAccessKeyId=AKIAPLS9HS&Expires=1539374539&Signature=lPDrAHlf

对于谷歌云存储:https://storage.googleapis.com/ < bucketName > / <路径>……

在哪里< bucketName >您的谷歌云存储二进制提供程序中指定的相应属性的值是否为binarystore.xml文件。例如,

https://storage.googleapis.com/data1234/myStoreOfBinaries/c12/c12cb08521fd46bc25894fbbc3559fd95e90b2c3?GoogleAccessId= < accessid >到期= 1664801501签名= <签名> &response-content-disposition =附件% 3 bfilename % 3 d % 2 b % 221% 25281% 2529. jpg % 22 &response-content-type = % 2 foctet-stream&x-jf-traceid = 4 acd13bc745dfa36应用

CloudFront:https:// < cloudFrontDomainName >。cloudfront.net/

是您的S3二进制提供程序中指定的相应属性的值binarystore.xml文件。例如,

https://d2h935dfm2pkds.cloudfront.net/myStoreOfBinaries/60/60b27f004e454aca92b0958209cck4829ec52430?response-content-disposition=attachment%3Bfilename%3Djava.jar&Policy=eyJTdGF0ZW1uMzM2ZGZtNnB&Signature=NVmUyUTG~930ub3~mr6~&Key-Pair-Id=APPFSI9VDAF

6.使用CloudFront(可选)

为了进一步优化S3中的直接云存储下载,Artifactory允许您指定CloudFront设置,该设置将确定您的工件物理驻留在哪个位置,这意味着从您的S3桶下载将通过快速CDN进行。

要使用CloudFront的直接云存储下载,请遵循以下步骤:

  1. 中所描述的创建CloudFront发行版CloudFront入门在AWS文档中。
  2. 生成密钥对,如为受信任的签名者创建CloudFront密钥对在AWS文档中。
  3. 在AWS控制台中,在“CloudFront >行为>缓存键和源请求”下,选择“遗留缓存设置”并应用以下设置:

    • 标题:没有
    • 查询字符串:All
    • 饼干:所有
  4. 匹配您的分发与您的S3桶。

    确保该分发指向在您的S3二进制提供程序在你的JFROG_HOME美元/ artifactory / var / etc / artifactory / binarystore.xml文件。

  5. 在你的binarystore.xml文件,设置enableSignedUrlRedirect真正的
  6. 中设置以下CloudFront参数S3二进制提供程序你的binarystore.xml文件:

    cloudFrontDomainName
    AWS提供的唯一域名
    cloudFrontKeyPairId
    在上面步骤2中创建的密钥对的唯一标识符
    cloudFrontPrivateKey
    在上面的步骤2中创建的私钥,格式如下:

    ---- begin rsa私钥----

    ……

    ----- end rsa私钥-----

    类中的这些参数的外观,下面的代码段显示了一个示例S3二进制提供程序你的binarystore.xml文件:

    true d2n9783dfm6kdoq.cloudfront.net APKPDIVCZ4OS2GY6VMGS -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAmVbCi33YzIyQMGJkNJN7NbRAEzZIxHv43nmq0b+tDM2CKX+f ........................... ...........................-----END RSA PRIVATE KEY-----  .使用实例


  • 没有标签
版权所有©2023 JFrog Ltd。