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





概述

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

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

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

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

需求

版本和平台

此功能需要Enterprise+或Edge许可证,当您的Artifactory二进制存储配置为AWS S3时,可以在JFrog Artifactory on - premise上使用此功能。

支持的包格式

JFrog Artifactory正式支持直接云存储下载以下类型的本地存储库:通用的,Helm、Docker、Maven、RPM、Npm、Debian(从Client version 9开始支持)、PyPI、Bower、CRAN、Composer、Conan、Gradle、Vagrant和Git LFS

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

JFrog订阅级别

自托管

企业+

页面内容


配置

要将Artifactory配置为直接下载云存储,请遵循以下步骤:

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

因为不再维护JetS3t库;因此,S3模板已被弃用2022年第二季度在Artifactory上市。您应该使用s3-storage-v3,它使用官方的、高度维护的AWS S3 SDK。

s3到s3-storage-v3之间的转换应该是无缝的,因为两个提供者之间的大多数参数是相同的。要了解更多信息,请参见S3对象存储Amazon S3官方SDK模板


1.配置工件文件存储库

如下所述配置文件存储,可以控制Artifactory如何存储二进制文件JFROG_HOME美元/ artifactory / var / etc / artifactory / binarystore.xml文件。

要启用直接云端储存下载,请按以下步骤进行:

  1. 在你的binarystore.xml文件,用于s3集useSignature真正的,用于s3-storage-v3集enableSignedUrlRedirect真正的
  2. 配置如下参数S3二进制提供程序AmazonS3官方SDK客户端你的binarystore.xml文件:

    enableSignedUrlRedirect
    为以下对象启用特性s3-storage-v3
    useSignature
    为以下对象启用特性s3
    signedUrlExpirySeconds

    默认值:30(可选)

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

方法中这些参数的外观示例如下S3二进制提供程序你的binarystore.xml文件:

true 30 300

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

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

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

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

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

使用UI

要将本地或远程存储库配置为重定向请求以进行直接下载,请设置启用“云存储直接下载”复选框中的存储库配置的高级选项卡。

使用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直接下载:

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

在哪里remote.yaml是:

remoterepository: generic-remote: downloadRedirect: enabled: true

3.微调直接下载

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

4.控制您的签名URL下载

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

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

  • 没有一个:直接下载,不需要重定向。
  • S3:即使存在CloudFront,也会从S3下载。
  • CF (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


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

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

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

6.使用CloudFront(可选)

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

要将CloudFront与直接云存储下载一起使用,请遵循以下步骤:

  1. 创建CloudFront发行版,如开始使用CloudFront请参阅AWS文档。
  2. 生成密钥对,如为您的可信签名者创建CloudFront密钥对请参阅AWS文档。
  3. 在AWS控制台中,在CloudFront | Behaviors下,使用以下命令在发行版上设置一个模式正向查询字符串= yes。这允许使用实际文件名下载文件,而不是使用其SHA1值。

  4. 将您的发行版与S3存储桶匹配起来。

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

  5. 在你的binarystore.xml文件,s3useSignature真正的,或fors3-storage-v3enableSignedUrlRedirect真正的
  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私钥----- MIIEowIBAAKCAQEAmVbCi33YzIyQMGJkNJN7NbRAEzZIxHv43nmq0b+tDM2CKX+f ........................... ...........................----- RSA私钥----- 


  • 没有标签
版权所有©2022 JFrog Ltd.