使用最新版本?
JFrog平台用户指南
JFrog Artifactoryx文档
要获取最新版本,请访问JFrog统一平台
配置
要将Artifactory配置为直接下载云存储,请遵循以下步骤:
配置工件文件存储库允许直接下载
指定存储库这将重定向直接下载请求
微调配置直接下载参数
配置防火墙允许直接下载
将必要的配置添加到使用CloudFront(可选)
配置工件文件存储库
如下所述配置文件存储,可以控制Artifactory如何存储二进制文件美元ARTIFACTORY_HOME / etc / binarystore.xml
文件。
要启用直接云端储存下载,请按以下步骤进行:
在你的binarystore.xml
文件,用于s3集useSignature
来真正的,用于s3-storage-v3集enableSignedUrlRedirect
来真正的.
配置如下参数S3二进制提供程序或AmazonS3官方SDK客户端你的binarystore.xml
文件:
enableSignedUrlRedirect |
为以下对象启用特性s3-storage-v3 |
useSignature |
为以下对象启用特性s3 |
signedUrlExpirySeconds |
默认值:30(可选) 指定向请求客户端提供用于从云存储直接下载的签名URL的有效秒数。 |
方法中这些参数的外观示例如下S3二进制提供程序你的binarystore.xml
文件:
true 30 300
指定用于直接下载的存储库
Artifactory可以配置为在存储库级别重定向直接下载的请求(没有全局配置来自动重定向所有请求)。这允许您既支持支持下载重定向响应(HTTP 302)的客户端,也支持不支持的客户端。下载重定向支持所有存储库类型—本地、远程、虚拟和通用存储库。对于配置为重定向的本地和远程存储库,将重定向所有请求。对于虚拟存储库,这取决于聚合的本地或远程存储库最终提供所请求的工件。如果存储库配置为重定向,那么请求客户端将接收相应的重定向响应,否则,Artifactory将获取被请求的工件,并像往常一样将其提供给客户端,而不需要重定向。
您可以通过以下方式配置Artifactory来重定向直接下载请求:
远程存储库必须配置为在本地存储构件
使用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
“远程。yaml”是:
remoterepository: generic-remote: downloadRedirect: enabled: true
直接下载
直接云存储下载特性的好处之一是,当必须同时为大型工件提供多个下载请求时,它减少了人工注册中心的负载。但是,只有当下载的工件确实很大时,才能真正实现这种好处。为了让您使用该特性微调Artifactory的行为,在Artifactory的通用配置中,您可以设置最小工件大小,以便下载请求可以重定向为直接云存储下载最小直接云存储下载大小参数(默认为1mb)。
控制您的签名URL下载
你可以通过配置下面的头来控制下载:X-JFrog-Download-Redirect-To
.
支持以下方法来控制签名URL重定向:
- None:直接下载,不进行signedUrl重定向。
- S3:即使存在CloudFront,也会从S3下载。
- CF (CloudFront):如果CloudFront可用,则从CloudFront下载。默认情况下,如果配置了CloudFront,并且它是一个有效的二进制提供程序,它应该从它下载。
穿越防火墙
当Artifactory中启用直接云存储下载时,这意味着所请求的工件实际上将从S3或CloudFront域而不是Artifactory的域提供服务。由于这些域在Artifactory提供的签名url中是恒定的,因此您应该将它们添加到组织的防火墙中,以实现顺利且不受阻碍的下载。您应该添加的域名是:
S3:https:// < bucketName >。s3.amazonaws.com/...
其中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/...
其中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
使用CloudFront(可选)
为了进一步优化直接云存储下载,Artifactory允许您指定CloudFront设置,这将决定您的工件将物理驻留在哪个位置,这意味着从S3存储桶下载将通过快速CDN。
要将CloudFront与直接云存储下载一起使用,请遵循以下步骤:
- 创建CloudFront发行版,如开始使用CloudFront请参阅AWS文档。
- 生成密钥对,如为您的可信签名者创建CloudFront密钥对请参阅AWS文档。
在AWS控制台中,在CloudFront | behavior下,使用以下命令在发行版上设置一个模式
正向查询字符串= yes。
这允许使用实际文件名下载文件,而不是使用其SHA1值。将您的发行版与S3存储桶匹配起来
也就是说,要确保分发版指向的S3存储桶与你的S3二进制提供程序在你的
美元ARTIFACTORY_HOME / etc / binarystore.xml
文件。- 在你的
binarystore.xml
文件,s3集useSignature
来真正的,或fors3-storage-v3集enableSignedUrlRedirect
来真正的. 配置如下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私钥----- . net