使用最新版本?
JFrog平台用户指南
JFrog Artifactoryx文档
要获取最新版本,请访问JFrog统一平台
基本配置要素
对于基本文件存储配置,使用binarystore.xml
File非常简单,包含下面描述的基本标签或元素以及它们可能包含的属性:
配置标签
的<设置>
标记指定文件存储配置。它包括版本
属性允许对配置进行版本控制。
链元素
config标记包含一个链
元素,该元素定义文件存储的结构。要使用一个内置文件存储,chain元素需要包含相应的模板属性。例如,要使用内置的基本文件系统
模板,你所需要的是以下配置:
.
内置的模板
以下部分描述了Artifactory内置的基本链模板,您可以开箱即用,以及默认链中包含的其他二进制提供程序。
关于每个模板的更多信息可以在下面的内置链模板部分中找到。
文件系统 |
Artifactory最基本的文件存储配置用于本地或挂载的文件存储。 |
cache-fs |
与文件系统的工作方式相同,但也缓存使用LRU(最近最少使用)协议清理的下载请求。提升IOPS (I/O Operations)高或NFS访问速度慢的实例的性能。 |
full-db |
所有元数据和二进制文件都以blob的形式存储在数据库中,并具有额外的缓存层。 |
full-db-direct |
所有元数据和二进制文件都以blob的形式存储在数据库中,不进行缓存。 |
s3 |
这是用于S3对象存储使用JetS3t库。 |
s3Old |
这是用于S3对象存储使用JCloud作为底层框架。 |
google storage |
这是用于将谷歌Cloud Storage作为远程文件存储的设置。 |
azure-blob-storage |
这是用于Azure Blob Storage作为远程文件存储的设置。 |
double-shards |
一个纯分片使用2个物理安装和1个副本的配置(这意味着每个工件只保存一次)。 |
redundant-shards |
一个纯分片使用2个物理挂载和2个副本(这意味着每个碎片存储每个工件的副本)的配置。 |
集群文件系统 |
一个文件存储配置,其中每个节点都有自己的本地文件存储(就像文件系统链一样),并通过动态分配连接到所有其他节点远程二进制提供程序使用Sharding-Cluster提供者。 |
cluster-s3 |
这是用于S3对象存储使用JetS3t库。它基于同步集群文件系统的分片和动态提供程序逻辑。 |
cluster-google-storage |
这是用于谷歌云存储使用JetS3t库。它基于同步集群文件系统的分片和动态提供程序逻辑。 |
cluster-azure-blob-storage |
这是用于一个zure Blob存储。它基于同步集群文件系统的分片和动态提供程序逻辑。 |
修改已存在的文件存储
为了满足您对文件存储的任何特定需求,您可以通过使用其他二进制提供程序扩展它或覆盖它的一个属性来修改现有的链模板之一。例如,内置的文件系统链模板将二进制文件存储在ARTIFACTORY_HOME /数据/ filestore美元
目录中。修改模板,使其在下面存储二进制文件FILESTORE美元/二进制文件
您可以将其扩展如下:
<!——file-system链模板结构——>$FILESTORE/binaries 属性——>
内置链模板
Artifactory内置了一组链模板,允许您开箱即用地设置各种不同的文件存储。但是,要覆盖内置文件存储,您需要熟悉其中使用的每个二进制提供程序的可用属性。这些将在下面的章节中进行描述,这些章节还展示了模板配置以及每个模板中的“底层”内容。此外,可以找到所有模板的使用示例。
文件系统二进制提供程序
这是Artifactory的基本文件存储配置,用于本地或挂载文件存储。
文件系统模板配置
如果您选择使用文件系统模板,你binarystore.xml
配置文件应该如下所示:
.
模板中有什么?
在本例中,文件存储和临时文件夹位于计算机的根目录下。
/var/opt/jfrog/data /filestore /tmp
地点:
类型 |
文件系统 |
baseDataDir |
默认值: |
fileStoreDir |
默认值: |
tempDir |
默认值: |
缓存文件系统二进制提供程序
的cache-fs
用作二进制缓存,使用LRU(最近最少使用)作为其清理协议。这可以提高Artifactory的性能,因为频繁的请求将从cache-fs
(就像S3二进制提供程序一样)。
的cache-fs
二进制提供程序将是Artifactory最接近的文件存储层。这意味着,如果文件存储已挂载,则需要cache-fs
在artifactory服务器本身上是本地的(如果文件存储是本地的,那么缓存-fs是没有意义的)。在HA配置的情况下,cache-fs
会不会是挂载和建议是每个节点都要有自己的cache-fs
层。
Cache-fs模板配置
如果您选择使用cache-fs模板,你binarystore.xml
配置文件应该如下所示:
.
模板中有什么?
这个例子将cache-fs的大小设置为10GB,它的位置(绝对路径,因为它以“/”开头)设置为/cache/filestore。
/cache/filestore 10000000000
地点:
类型 |
cache-fs |
maxCacheSize |
默认值:5000000000 (5GB) 中为缓存分配的最大存储空间字节.请注意,maxCacheSize可以不包括正在上传的文件(保存在cache/_pre下);因此建议保留_pre文件夹的额外空间. |
cacheProviderDir |
默认值:缓存 文件存储缓存的二进制文件的根文件夹。如果指定的值以正斜杠(" / ")开头,则认为它是文件存储文件夹的完全限定路径。否则,它被认为是相对的baseDataDir. |
全数据库二进制提供程序
这个二进制提供程序将所有元数据和二进制内容保存为数据库中的blob,并在文件系统上增加了一层缓存。
缓存可以提高Artifactory的性能,因为频繁的请求将从cache-fs在访问数据库之前。
全db模板配置
如果您选择使用full-db模板,你binarystore.xml
配置文件应该如下所示:
.
模板中有什么?
而您不需要在您的binarystore.xml,这是什么full-db模板看起来像在引擎盖下。
有关cache-fs供应商,请参考缓存文件系统二进制提供程序.
的团provider处理元数据和二进制内容作为blob在数据库中的实际保存。
全db - direct二进制提供程序
全数据库直接模板配置
如果您选择使用full-db-direct模板,你binarystore.xml配置文件应该如下所示:
.
模板中有什么?
而您不需要在您的binarystore.xml,这是什么full-db-direct模板看起来像在引擎盖下。
的团provider处理元数据和二进制内容作为blob在数据库中的实际保存。
云存储提供商
云对象存储支持
从6.15版本开始,JFrog Container Registry和Artifactory Pro支持使用来自主要SaaS提供商的云对象存储,包括Amazon的S3、谷歌的云存储或Azure的Blob存储作为其二进制提供商。
其他对象存储服务提供商,如OpenStack Swift、NetApp的StorageGRID等,需要获得Enterprise license。
高可用性集群需要为S3提供程序使用共享挂载
使用S3存储提供商(或s3链模板),将需要集群共享挂载。这是因为只有主节点将处理对象存储交互,而所有节点将能够向共享挂载添加文件最终目录中。
的替代方案S3对于没有共享挂载的集群,将使用cluster-s3链模板.
Amazon S3官方SDK模板
从版本6.12开始,Artifactory提供了以下功能s3-storage-v3使用官方的Amazon SDK配置S3云存储。
身份验证机制
支持以下认证方式:
- 基本凭证
- 默认的Amazon Provider Chain凭据。默认的Amazon Provider链按照以下顺序搜索凭据:
-
- 基于系统属性的凭据
- 凭证配置文件.
- 通过Amazon EC2容器服务交付的凭证.
实例配置文件凭据通过Amazon EC2元数据服务交付。
“Amazon S3官方版Amazon SDK”模板用于配置S3云存储和支持下面的一组参数。
类型 |
s3-storage-v3 |
testConnection |
默认值:真正的 当设置为true时,二进制提供程序将在Artifactory启动时上传和下载一个文件,以验证与云存储提供程序的连接是否完全正常。 |
身份 |
您的云存储提供商身份。 |
凭证 |
您的云存储提供者身份验证凭据。 |
地区 |
您希望与之合作的云存储提供商提供的区域。 |
bucketName |
您的全局惟一桶名。 |
路径 |
默认值:filestore |
rootFoldersNameLength |
默认值:2 对象校验和中应用于命名存储中的文件夹的初始字符数。它可以取0到5.0之间的任何值,这意味着校验和文件将存储在对象存储桶的根目录下。 例如,如果对象的校验和是8c335149…而且 |
proxyIdentity |
当您通过代理服务器访问云存储提供商时,需要输入相应的参数。 |
proxyCredential |
|
proxyPort |
|
proxyHost |
|
端点 |
云存储提供商的URL。 |
kmsServerSideEncryptionKeyId |
默认= N / A。仅适用于“s3-storage-v3”模板。 使用KMS加密客户端,提供KMS加密密钥ID或别名。 |
kmsKeyRegion |
默认=N/A (from Artifactory 6.13) 设置从给定区域获取的KMS密钥。如果没有提供,则使用region参数。如果没有同时提供区域,则使用默认AWS区域。 |
kmsCryptoMode |
默认值:EncryptionOnly。仅适用于“s3-storage-v3”模板。 使用KMS加密与以下加密策略之一:
有关更多信息,请参见https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-crypto-kms.html. |
useInstanceCredentials |
默认值:false。 当真正的,使用AWS S3默认提供者链根据身份验证机制. |
usePresigning |
默认值:false。 当设置为true时,应用于签名url,用于在s3对象上添加、删除和获取客户端方法。 |
multiPartLimit |
默认值:100,000,000字节 当usePresigning设置为false,或者对于s3old和s3模板 文件大小阈值(以字节为单位),文件上传的分块和多线程超过该阈值。 |
transferManagerThreads |
默认值:10。仅适用于“s3-storage-v3”模板。 适用于当usePresigning设置为false 适用于多段上传,由multiPartLimit配置。 |
signatureExpirySeconds |
默认值:300 当 |
maxConnections |
默认值:50。 设置AWS客户端的最大HTTP客户端连接数 |
connectionTimeout |
默认值:10 x1000。 为AWS客户端设置连接超时(以毫秒为单位)。 |
socketTimeout |
默认值:50 * 1000。 为AWS客户端设置套接字超时(以毫秒为单位)。 |
enablePathStyleAccess |
默认值:假 Amazon S3支持virtual-hosted-style而且path-style所有地区的接入。 的path-style语法要求在尝试访问桶时使用特定于区域的端点。对于非aws用户,此属性可能需要设置为true。 |
disableChunkedEncoding |
默认值:假 默认行为是自动启用分块编码PutObjectRequest而且UploadPartRequest. 只有当您的终端没有实现分块上传时,才建议使用此选项。 |
useDeprecatedBucketExistenceCheck |
默认值:假 设置此属性将强制根据对桶的HEAD请求检查桶是否存在。(在AWS中已弃用) |
enableSignedUrlRedirect |
默认值:假 使云存储直接下载(企业+)。 |
signedURLExpirySeconds |
默认值:30 指定向请求客户端提供的从云存储直接下载的签名URL有效的秒数。 |
下面的代码片段展示了使用S3二进制提供程序支持几种配置(CEPH、CleverSafe等)的基本模板配置和示例。
s3-storage-v3二进制存储模板配置
因为您必须配置S3提供特定于您的帐户的参数(但可以保留所有其他参数的推荐值),如果选择使用此模板,您的binarystore.xml
配置文件应该如下所示:
http://s3.amazonaws.com bucketName pathPrefix s3Region yourIdentity yourCredentials
模板中有什么?
而您不需要在您的binarystore.xml,这是什么s3-storage-v3模板看起来像在引擎盖下。
.
有关cache-fs供应商,请参考缓存文件系统二进制提供程序.
有关最终供应商,请参考最终二进制提供程序.
有关重试供应商,请参考重试二进制提供程序.
例子
这个例子用您的凭证设置s3,使用pre-signing用于对象操作,并设置10分钟(600秒)的预签名URL
http://s3.amazonaws.com bucketName pathPrefix s3Region yourCredentials identity> yourCredentials < usepresign >true usepresign >600 provider>
S3二进制提供程序
Artifactory提供了以下模板,用于在S3云提供商上配置存储:
- s3模板:用于使用JetS3t库配置s3对象存储。
- s3Old模板:用于通过JClouds配置S3对象存储。
S3模板的最新推荐版本
从6.12版本开始,Artifactory支持使用官方Amazon SDK配置S3对象存储。有关更多信息,请参见s3-storage-v3模板.
类型 |
S3或s3old |
testConnection |
默认值:真正的 当设置为true时,二进制提供程序将在Artifactory启动时上传和下载一个文件,以验证与云存储提供程序的连接是否完全正常。 |
multiPartLimit |
默认值:100,000,000字节 文件大小阈值,文件上传的分块和多线程。 |
身份 |
您的云存储提供商身份。 |
凭证 |
您的云存储提供者身份验证凭据。 |
地区 |
您希望与之合作的云存储提供商提供的区域。 |
bucketName |
您的全局惟一桶名。 |
路径 |
默认值:filestore
相对于存储二进制文件的桶的路径。 |
rootFoldersNameLength |
默认值:2 对象校验和中应用于命名存储中的文件夹的初始字符数。它可以取0到5之间的任何值。0表示校验和文件将存储在对象存储桶的根目录下。 例如,如果对象的校验和是8c335149…而且 |
proxyIdentity |
当您通过代理服务器访问云存储提供商时,需要输入相应的参数。 |
proxyCredential |
|
proxyPort |
|
proxyHost |
|
港口 |
云存储提供商的端口。 |
端点 |
云存储提供商的URL。 |
roleName |
只于S3。 在你的Amazon服务器上为认证配置的IAM角色。 当使用此参数时,refreshCredentials参数必须设置为true。 |
refreshCredentials |
默认值:false。只于S3。 当为true时,如果所有者的凭证过期,则自动更新。 当roleName,此参数必须设置为true。 |
httpsOnly |
默认值:真的。只于S3. 如果只希望通过安全https连接访问云存储提供商,则设置为true。 |
httpsPort |
默认值:443。如果必须设置httpsOnly是真正的.用于安全连接的https端口。 指定此值时,需要将端口从端点. |
providerID |
设置为S3。只适用于S3old. |
s3AwsVersion |
默认值:'AWS4-HMAC-SHA256' (AWS签名版本4)S3。 如果需要AWS签名版本2,可以设置为'AWS2'。请参阅AWS的文档更多信息。 |
"><属性名= " s3service。disable-dns-buckets " value = " true " > < /属性> |
Artifactory在默认情况下将bucketName放在端点的前面(例如。mybucket.s3.aws.com)创建一个URL来访问S3桶。Amazon AWS等S3提供者使用这种约定。
但是,有些S3提供者使用桶名作为上下文URL的一部分,情况就不是这样了。s3provider.com/mybucket);因此Artifactory需要添加以下参数,以便URI与S3提供者兼容。使用此URI格式的S3提供商包括OpenStack、CEPH、CleverSafe和EMC ECS。 |
"><属性名= " s3service。server-side-encryption“价值= " aws:公里" > < /属性> |
使用此属性可以设置Artifactory,以便使用配置了KMS加密密钥的S3 bucket。 |
useSignature |
默认值:假 当设置为true时,应用于签名url,用于在s3对象上添加、删除和获取客户端方法。此参数还启用云存储直接下载(企业+)。 |
signedURLExpirySeconds |
默认值:30 指定向请求客户端提供的从云存储直接下载的签名URL有效的秒数。 |
signatureExpirySeconds |
默认值:300(可选) 当 useSignature 设置为true时,该参数指定签名S3signature访问S3的秒数。 |
S3模板配置
binarystore.xml
配置文件应该如下所示:. http://s3.amazonaws.com [ENTER identity HERE] [ENTER CREDENTIALS HERE] [ENTER path HERE] [ENTER BUCKET NAME HERE] [ENTER identity HERE] [ENTER CREDENTIALS HERE] [ENTER path HERE] [ENTER BUCKET NAME HERE]
模板中有什么?
而您不需要在您的binarystore.xml,这是什么s3模板看起来像在引擎盖下。
.
示例1
OpenStack对象存储Swift的配置。
. value="true XXXXXXXXX XXXXXXXX < httponly >false httponly >< property name="s3service. "Disable-dns-buckets " value="true">
示例2
. value="true"> < httponly >false httponly > provider> XXXXXXXXXX XXXXXXXXXXXXXXXXX [我的CEPH桶名] <属性名="s3service. "disable-dns-buckets" value="true"> < httponly >false httponly > provider>
示例3
. value="true XXXXXXXXX XXXXXXXX [My CleverSafe Server] [My CleverSafe Bucket] < httponly >false httponly > <属性名="s3service. "Disable-dns-buckets " value="true">
示例4
XXXXXXXXXX XXXXXXXXXXXXXXXXX [My s3服务器] [My s3桶名] [http代理主机名] [http代理端口号] XXXXX XXXX
示例5
XXXXXX s3.amazonaws.com [mybucketname] true
例子6
. XXXXXXXXX XXXXXXXX s3.amazonaws.com [mybucketname]
例7
当使用KMS(密钥管理服务)类型的服务器端加密时,S3的配置。
. XXXXXXXXX XXXXXXXX s3.amazonaws.com [mybucketname]
示例8
. value="true XXXXXXXXXX XXXXXXXXXXXXXXXXX < httpsPort> [我的ECS桶名]
S3Old二进制提供程序
下面的代码片段显示了一个使用S3二进制提供程序的示例,其中JClouds是底层框架。
s3Old模板配置
AWS的配置。
因为您必须配置s3Old提供特定于您的帐户的参数(但可以保留所有其他参数的推荐值),如果选择使用此模板,您的binarystore.xml
配置文件应该如下所示:
XXXXXXXXX XXXXXXXX s3.amazonaws.com [mybucketname]
模板中有什么?
而您不需要在您的binarystore.xml,这是什么s3Old模板看起来像在引擎盖下。
.
谷歌存储二进制提供程序本地客户端模板
“Google - Storage -v2”模板用于使用谷歌本地客户端配置“谷歌云存储”作为远程文件存储。
身份验证机制
使用谷歌自动生成的凭据文件建立身份验证。
认证解决方案
我们支持三种解决方法
认证解析顺序如下:
' useInstanceCredentials ' == true &&设置"GOOGLE_APPLICATION_CREDENTIALS"环境变量
' useInstanceCredentials ' == true &&使用Kubernetes(或其他)服务帐户学分(无学分文件)
' useInstanceCredentials ' == false &&将信用文件保存在default路径[arti_home_full_path] / etc / gcp.credentials.json。
授予“云功能服务代理”角色转换为所使用的服务帐户,以便使用实例的凭据。
Artifactory搜索一个名为GOOGLE_APPLICATION_CREDENTIALS包含凭据文件的路径。如果环境变量不存在,则计算引擎、Kubernetes引擎、App引擎和Cloud Functions提供的默认服务帐户将应用于运行在这些服务上的应用。
下面的代码片段显示了基本的google-storage-v2模板配置和使用谷歌云存储二进制提供程序的示例。
这个二进制提供程序使用以下一组参数:
类型 |
google-storage-v2 |
bucketName |
您的全局惟一桶名。 |
路径 |
默认值:filestore 设置相对于存储二进制文件的桶的路径。 |
rootFoldersNameLength |
默认值:2。 对象校验和中应用于命名存储中的文件夹的初始字符数。它可以取0到6之间的任何值。0表示校验和文件将存储在对象存储桶的根目录下。例如,如果对象的校验和是8c335149…而且 |
bucketExists |
默认值:false。 当设置为true时,它向二进制提供程序指示一个桶已经存在于谷歌云存储中,因此不需要创建。 |
testConnection |
默认值:真正的 当设置为true时,二进制提供程序将在Artifactory启动时上传和下载一个文件,以验证与云存储提供程序的连接是否完全正常。 |
useInstanceCredentials |
默认值:false。 当设置为真正使用时,“GOOGLE_APPLICATION_CREDENTIALS”环境变量会找到凭证或使用默认的服务帐户。 |
enableSignedUrlRedirect |
默认值:false。 当设置为true时,使用启用的签名url重定向下载请求。 |
signedUrlExpirySeconds |
默认值:30。 以秒为单位设置签名URL的有效期。 |
signatureExpirySeconds |
默认值:30。 指定内部用于上传/下载的签名URL有效的秒数。 |
proxyIdentity |
默认值:无代理 当您通过代理服务器访问云存储提供商时,需要输入相应的参数。 |
proxyCredential |
|
proxyPort |
|
proxyHost |
|
maxConnections |
默认值:100 设置http客户端最大连接数。 |
ConnectionTimeout |
设置连接超时时间。 |
Google-storage-v2模板配置
因为您必须配置google-storage-v2提供特定于您的帐户的参数(但可以保留所有其他参数的推荐值),如果选择使用此模板,您的binarystore.xml
配置文件应该如下所示:
示例1
my-bucket myPath 3 false 10 127.0.0.1 8888 username password50 120000
谷歌存储二进制提供程序
该模板用于将“谷歌云存储”配置为远程文件存储。
下面的代码片段显示了基本模板配置和使用谷歌云存储二进制提供程序的示例。
这个二进制提供程序使用以下一组参数:
类型 |
google storage |
testConnection |
默认值:真正的 当设置为true时,二进制提供程序将在Artifactory启动时上传和下载一个文件,以验证与云存储提供程序的连接是否完全正常。 |
multiPartLimit |
默认值:100,000,000字节 文件大小阈值,文件上传的分块和多线程。 |
身份 |
您的云存储提供商身份。 |
凭证 |
您的云存储提供者身份验证凭据。 |
bucketName |
您的全局惟一桶名。 |
路径 |
默认值:filestore
相对于存储二进制文件的桶的路径。 |
proxyIdentity |
当您通过代理服务器访问云存储提供商时,需要输入相应的参数。 |
proxyCredential |
|
proxyPort |
|
proxyHost |
|
港口 |
云存储提供商的端口。 |
端点 |
云存储提供商的URL。 |
httpsOnly |
默认值:真的。 如果只希望通过安全https连接访问云存储提供商,则设置为true。 |
httpsPort |
默认值:443。如果必须设置httpsOnly是真正的.用于安全连接的https端口。 指定此值时,需要将端口从端点. |
bucketExists |
默认值:false。 当设置为true时,它向二进制提供程序指示一个桶已经存在于谷歌云存储中,因此不需要创建。 |
Google-storage模板配置
因为您必须配置google storage提供特定于您的帐户的参数(但可以保留所有其他参数的推荐值),如果选择使用此模板,您的binarystore.xml
配置文件应该如下所示:
commondatastorage.googleapis.com XXXXXX XXXXXXX
模板中有什么?
而您不需要在您的binarystore.xml,这是什么google storage模板看起来像在引擎盖下。
.执行以下命令
有关cache-fs供应商,请参考缓存文件系统二进制提供程序.
有关最终供应商,请参考最终二进制提供程序.
有关重试供应商,请参考重试二进制提供程序.
示例1
commondatastorage.googleapis.com XXXXXX XXXXXXX <属性名="httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient。“最大连接数”值=150>
Azure Blob存储二进制提供程序
Azure - Blob - Storage模板用于将Azure Blob Storage配置为远程文件存储。
下面的代码片段展示了基本的模板配置和一个使用Azure Blob Storage二进制提供程序的示例。
这个二进制提供程序使用以下一组参数:
testConnection |
默认值:真正的 当为true时,Artifactory将在启动时上传和下载一个文件,以验证与云存储提供程序的连接是否完全正常。 |
帐号名称 |
存储帐户可以是a通用存储帐户或者一个Blob存储帐户它专门用于存储对象/blob。 您的云存储提供商身份。 |
accountKey |
您的云存储提供者身份验证凭据。 |
containerName |
Azure Blob Storage上的全局惟一容器名称。 |
端点 |
主机名。您应该只使用默认值,除非您需要为测试或生产目的联系不同的端点。 |
httpsOnly |
默认值:真的。 如果您只想通过安全https连接进行访问,则设置为true。 |
因为您必须使用特定于您的帐户的参数配置Azure Blob存储提供程序(但可以保留所有其他参数的推荐值),如果您选择使用此模板,您的binarystore.xml
配置文件应该如下所示:
XXXXXXXX XXXXXXXX https://< accountName> .blob.core.windows.net/
模板中有什么?
下面的代码片段显示了使用azure-blob-storage
作为二进制提供程序:
.
最终二进制提供程序
这个二进制提供程序不是独立的,它总是被用作远程文件存储的模板链的一部分,这些文件存储可能会出现上传延迟(例如S3或GCS)。为了克服潜在的延迟,文件首先被写入一个名为“ultimate”的文件夹baseDataDir在本地存储中,然后上传到云提供商的持久存储中。的默认位置最终
文件夹在美元ARTIFACTORY_HOME /数据
文件夹(或$ CLUSTER_HOME / ha-data
在使用Artifactory版本的HA配置的情况下下面5.0)并且不可配置。您需要确保Artifactory对该位置具有完全的读/写权限。
目录下还有三个额外的文件夹eventua
l文件夹:
- _pre:持久性机制的一部分,它确保所有文件在上传到远程文件存储之前都是有效的
- _add:处理向远程文件存储上传文件
- _delete:处理远程文件存储中的文件删除
例子
下面的示例展示了在使用最终二进制提供程序进行临时存储之后使用S3进行持久存储的配置。最终提供者为上传配置10个并行线程,并设置180秒的锁定超时。
<!——S3二进制提供者配置——>< config version="v1">XXXXXXXXX XXXXXXXX < httponly >false httponly >< property name="s3service. "Disable-dns-buckets " value="true"> 10 180000
地点:
类型 |
最终 |
超时 |
当文件被写入或从文件系统中删除时,它可能被锁定的最长时间。 |
dispatcherInterval |
默认值:5000 ms 提供程序扫描“最终”文件夹以检查应上传到持久存储的文件的间隔时间。 |
numberOfThreads |
默认值:5 为将文件上传到持久存储而分配的并行线程数。 |
重试二进制提供程序
这个二进制提供程序不是独立的,总是作为更复杂的提供程序模板链的一部分使用。如果读或写操作失败,这个二进制提供程序将通知其层次结构中的底层提供程序重试该操作。
类型 |
重试 |
时间间隔 |
默认值:5000 ms 重试前等待的时间间隔。 |
maxTrys |
默认值:5 在响应失败之前读或写的最大尝试次数。 |
例子
下面的示例展示了一个使用S3进行持久存储的配置,但使用重试提供程序来持续重试(最多10次),以防上传失败。
<!——S3二进制提供者配置——>< config version="v1">XXXXXXXXX XXXXXXXX < httponly >false httponly >< property name="s3service. "Disable-dns-buckets " value="true"> 10
最终集群二进制提供程序
这个二进制提供程序不是独立的,它总是被用作远程文件存储的模板链的一部分,这些文件存储可能会出现上传延迟(例如S3或GCS)。为了克服潜在的延迟,文件首先被写入一个名为“ultimate”的文件夹baseDataDir在本地存储中,然后上传到云提供商的持久存储中。的默认位置最终
文件夹在美元ARTIFACTORY_HOME /数据
文件夹,并且不可配置。您需要确保Artifactory对该位置具有完全的读/写权限。
目录下还有两个额外的文件夹eventua
l文件夹:
- _pre:持久性机制的一部分,它确保所有文件在上传到远程文件存储之前都是有效的
- _queue:处理将到达远程文件存储的文件上的所有操作
id |
eventual-cluster |
addStalePeriod |
默认值:300000毫秒 事件发生前等待的时间添加当试图处理添加在Artifactory中不存在的文件时,操作将被视为过期。 |
maxWorkers |
默认值:5 此提供程序使用的工作线程数。这些线程处理针对远程文件存储的所有操作。 |
dispatcherInterval |
默认值:1000毫秒 扫描最终目录之间的等待时间。 |
checkPeriod |
默认值:15000 ms 如果提供程序在任何时候发生致命错误,则两次尝试重新激活提供程序之间的最小等待时间。 |
区 |
提供程序所在的分片区域的名称(仅适用于分片提供程序) |
例子
下面的配置使用google-storage链模板,配置10个并行线程用于上传,扫描时间为1秒。
.使用实例 commondatastorage.googleapis.com XXXXXX XXXXXXX <属性名=" httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient. httpclient。max-connections " value=150>5 1000 15000 300000 local
双碎片,冗余碎片
这些二进制提供程序只能通过企业许可证使用。
双碎片二进制提供程序
的double-shards模板用于使用2个物理挂载和1个副本的纯分片配置(这意味着每个工件只保存一次)。要了解关于不同分片功能的更多信息,请参考Filestore分片.
双碎片模板配置
如果您选择使用double-shards模板,你binarystore.xml
配置文件应该如下所示:
.
模板中有什么?
而您不需要在您的binarystore.xml,这是什么double-shards模板看起来像在引擎盖下。
有关cache-fs供应商,请参考缓存文件系统二进制提供程序.
有关分片供应商,请参考分片二进制提供程序.
有关结合分供应商,请参考状态感知二进制提供程序.
. 1 1
冗余碎片二进制提供程序
的redundant-shardsTemplate用于使用2个物理挂载和2个副本(这意味着每个碎片存储每个工件的副本)的纯分片配置。要了解关于不同分片功能的更多信息,请参考Filestore分片.
冗余碎片模板配置
如果您选择使用redundant-shards模板,你binarystore.xml
配置文件应该如下所示:
.
模板中有什么?
而您不需要在您的binarystore.xml,这是什么redundant-shards模板看起来像在引擎盖下。
有关cache-fs提供程序可以在缓存文件系统二进制提供程序部分。
有关分片提供程序可以在分片二进制提供程序部分。
有关结合子提供程序可在状态感知二进制提供程序部分。
2 1
分片二进制提供程序
Artifactory提供了一个分片二进制提供程序,允许您在分片文件存储中管理二进制文件。分片文件存储是在多个物理挂载(M)上实现的文件存储,它存储具有冗余(R)的二进制对象,其中R <= M。
这个二进制提供程序不是独立的,总是作为更复杂的提供程序模板链的一部分使用。要了解关于分片的知识,请参考Filestore分片.
类型 |
分片 |
lenientLimit |
默认值:1(从5.4版本开始。注意,对于配置了自定义链且不使用内置模板的文件存储, 的最低成功写的数量必须维护才能成功上传.下一个平衡循环(由GC机制触发)将最终将二进制文件传输到足够多的节点,以便保留冗余承诺。 例如,如果 当前活动节点的数量必须始终大于或等于配置的lenientLimit。如果设置为0,则必须保留冗余值。 |
readBehavior |
此参数指定从组成分片文件存储的安装中读取二进制文件的策略。 取值包括: 设置轮流捡取(默认):使用循环策略从每个挂载读取二进制文件。 |
writeBehavior |
此参数指示将二进制文件写入组成分片文件存储的挂载的策略。取值包括: 设置轮流捡取(默认):二进制文件使用循环策略写入每个挂载。 空闲空间:二进制文件被写入具有最大绝对可用空闲空间的挂载。 percentageFreeSpace:根据可用的空闲空间百分比将二进制文件写入挂载。 |
冗余 |
默认值:r = 1 在文件存储中为每个二进制文件存储的副本数量。注意,冗余必须小于或等于系统中安装的数量,Artifactory才能使用此配置。 |
concurrentStreamWaitTimeout |
默认值:30000 ms 为了支持指定的冗余,在缓冲区中累积写流,并使用“r”线程(根据指定的冗余)写入正在写入的二进制文件的每个冗余副本。只有在所有冗余线程完成写操作后,才可以认为二进制文件已写入。由于所有线程都在竞争写流缓冲区,所以每个线程将在不同的时间完成写操作。该参数指定任何线程等待所有其他线程完成写操作的时间(ms)。 如果写操作失败,您可以尝试增加该参数的值。 |
concurrentStreamBufferKb |
默认值:32kb 如果写操作失败,您可以尝试增加该参数的值。 |
maxBalancingRunTime |
默认值:3,600,000 ms(1小时)
为了在挂载失败后更快地将系统恢复到完全冗余状态,可以增加该参数的值。如果您发现这会导致整体系统性能不可接受的下降,您可以考虑降低该参数的值,但这意味着Artifactory恢复完全冗余所花费的总体时间将更长。
|
freeSpaceSampleInterval |
默认值:3,600,000 ms(1小时) 为了实现其写行为,Artifactory需要定期查询分片文件存储中的挂载,以检查空闲空间。由于此检查可能是一个资源密集型操作,您可以使用此参数来控制空闲空间检查之间的时间间隔。
如果预期会有一段时间需要大量上传二进制文件,可以考虑降低该参数的值,以减少系统中挂载之间的暂时不平衡。
|
minSpareUploaderExecutor |
默认值:2 Artifactory维护一个线程池来执行对每个冗余存储单元的写操作。根据写活动的强度,最终,一些线程可能会变为空闲,然后成为被杀死的候选线程。然而,当写活动再次开始时,Artifactory确实需要维护一些活动线程。此参数指定为提供冗余存储单元而应保持活动的最小线程数。 |
uploaderCleanupIdleTime |
默认值:120,000 ms(2分钟) 线程在成为被杀死的候选线程之前可以保持空闲的最长时间。 |
状态感知二进制提供程序
该二进制提供程序不是独立的,总是在分片或sharding-cluster提供者。提供程序知道其底层磁盘是否在工作。它和基本的是一样的文件系统方法,它也可以从错误中恢复(父提供程序负责恢复)checkPeriod字段。
类型 |
结合 |
checkPeriod |
默认值:15000 ms 如果提供程序在任何时候发生致命错误,则两次尝试重新激活提供程序之间的最小等待时间。 |
writeEnabled |
默认值:真正的 从Artifactory 6.18和更高版本开始,启用/禁用二进制提供程序的写操作。如果设置为false,状态感知提供程序将继续为读请求提供服务,因此Artifactory可以继续从该提供程序读取二进制文件。此外,垃圾收集可以继续从提供程序中清除已删除的二进制文件。(仅适用于分片提供者。) |
区 |
提供程序所在的分片区域的名称。(仅适用于分片提供者。) |
为HA集群配置分片
这些二进制提供程序只能通过企业许可证使用。
对于高可用性集群,Artifactory提供了支持File-System、S3和谷歌Storage分片集群的模板。要了解关于不同分片功能的更多信息,请参考Filestore分片.
在HA集群上配置文件存储时,需要放置binarystore.xml下$ ARTIFACTORY_HOME /等
在主节点中,它将被同步到集群中的其他成员。
文件系统集群二进制提供程序
当使用集群文件系统模板,每个节点都有自己的本地文件存储(就像文件系统二进制提供程序)并通过动态分配连接到所有其他集群节点远程二进制提供程序使用分片-集群二进制提供程序.
集群文件系统模板配置
binarystore.xml
配置文件应该如下所示:.
模板中有什么?
而您不需要在您的binarystore.xml,这是集群文件系统模板在底层的样子。有关cache-fs提供程序可以在缓存文件系统二进制提供程序部分。
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关结合子提供程序可在状态感知二进制提供程序部分。
. / local remote crossNetworkStrategy crossNetworkStrategy 2
Amazon S3 SDK集群二进制提供程序
这是用于Amazon S3官方SDK模板在为HA集群配置文件存储分片时使用。它基于同步集群文件系统的分片和动态提供程序逻辑。
当使用cluster-s3-storage-v3模板,数据临时存储在每个节点的文件系统上最终集群二进制提供程序,然后传递到S3对象存储进行持久存储。
每个节点都有自己的本地文件存储(就像文件系统二进制提供程序)并通过动态分配连接到所有其他集群节点远程二进制提供程序使用分片-集群二进制提供程序.
配置Cluster-s3-storage-v3模板
因为您必须配置s3提供特定于您的帐户的参数(但可以保留所有其他参数的推荐值),如果您选择使用cluster-s3-storage-v3模板,你binarystore.xml配置文件可以是这样的:
http://s3.amazonaws.com bucketName pathPrefix s3Region yourCredentials
模板中有什么?
虽然您不需要在binarystore.xml中配置任何其他内容,但这就是s3-storage-v3模板在底层的样子。
crossNetworkStrategy crossNetworkStrategy 2 remote local http://s3.amazonaws.com bucketName pathPrefix s3Region yourIdentity yourCredentials
有关cache-fs提供程序可以在缓存文件系统二进制提供程序部分。
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关eventual-cluster子提供程序可在最终集群二进制提供程序部分。
有关重试提供程序可以在重试二进制提供程序部分。
有关远程动态提供程序可以在远程二进制提供程序部分。
S3集群二进制提供程序
这是用于S3对象存储在为HA集群配置文件存储分片时使用JetS3t库。它基于同步集群文件系统的分片和动态提供程序逻辑。
当使用cluster-s3模板,数据临时存储在每个节点的文件系统上最终二进制提供程序,然后传递到S3对象存储进行持久存储。
每个节点都有自己的本地文件存储(就像文件系统二进制提供程序)并通过动态分配连接到所有其他集群节点远程二进制提供程序使用分片-集群二进制提供程序.
Cluster-s3模板配置
binarystore.xml
配置文件应该如下所示:http://s3.amazonaws.com [ENTER identity HERE] [ENTER CREDENTIALS HERE] [ENTER path HERE] [ENTER BUCKET NAME HERE]
模板中有什么?
而您不需要在您的binarystore.xml,这是什么cluster-s3模板看起来像在引擎盖下。
crossNetworkStrategy crossNetworkStrategy 2 remote local [ENTER identity HERE] [ENTER CREDENTIALS . [ENTER path HERE] [ENTER BUCKET NAME HERE]
有关cache-fs提供程序可以在缓存文件系统二进制提供程序部分。
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关eventual-cluster子提供程序可在最终二进制提供程序部分。
有关重试提供程序可以在重试二进制提供程序部分。
有关远程Dnyamic提供程序可以在远程二进制提供程序部分。
谷歌存储集群二进制提供程序
这是用于谷歌云存储在为HA集群配置文件存储分片时使用JetS3t库。它基于同步集群文件系统的分片和动态提供程序逻辑。
当使用cluster-google-storage模板,数据临时存储在每个节点的文件系统上最终二进制提供程序,然后传递到您的谷歌存储持久存储。
每个节点都有自己的本地文件存储(就像文件系统二进制提供程序)并通过动态分配连接到所有其他集群节点远程二进制提供程序使用分片-集群二进制提供程序.
Cluster-google-storage模板配置
binarystore.xml
配置文件应该如下所示:commondatastorage.googleapis.com XXXXXX XXXXXXX
模板中有什么?
而您不需要在您的binarystore.xml,这是什么cluster-google-storage模板看起来像在引擎盖下。
crossNetworkStrategy crossNetworkStrategy 2 remote local commondatastorage.googleapis.com XXXXXX XXXXXXX
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关eventual-cluster子提供程序可在最终二进制提供程序部分。
有关重试提供程序可以在重试二进制提供程序部分。
有关远程Dnyamic提供程序可以在远程二进制提供程序部分。
Azure Blob存储集群二进制提供程序
这是用于Azure Blob存储.它基于同步集群文件系统的分片和动态提供程序逻辑。
当使用cluster-azure-blob-storage模板,数据临时存储在每个节点的文件系统上最终二进制提供程序,然后传递到您的Azure Blob Storage进行持久存储。
每个节点都有自己的本地文件存储(就像文件系统二进制提供程序)并通过动态分配连接到所有其他集群节点远程二进制提供程序使用分片-集群二进制提供程序.
Cluster-azure-blob-storage模板配置
binarystore.xml
配置文件应该如下所示:XXXXXX XXXXXX https://< accountName> .blob.core.windows.net/
模板中有什么?
而您不需要在您的binarystore.xml,这是什么cluster-azure-blob-storage模板看起来像在引擎盖下:
< provider id="azure-blob-storage" type="azure-blob-storage"> type = "远程" / > < /提供者> < /提供者> < /链> < !——cluster eventual Azure Blob Storage Service default chain——> crossNetworkStrategy crossNetworkStrategy 2 1 remote crossNetworkStrategy 2 writeBehavior> 2 1 remote local XXXXXX XXXXXX https:// .blob.core.windows.net/ . https://< accountName>XXXXXX XXXXXX https:// .blob.core.windows.net/
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关eventual-cluster子提供程序可在最终二进制提供程序部分。
有关重试提供程序可以在重试二进制提供程序部分。
有关远程Dnyamic提供程序可以在远程二进制提供程序部分。
分片-集群二进制提供程序
分片集群二进制提供程序可以与其他二进制提供程序一起使用,用于本地存储或本地云存储。它增加了一个crossNetworkStrategy参数用于验证冗余值和平衡机制的读写行为。它必须包括远程二进制提供程序在其动态提供程序设置中,允许跨集群同步提供程序。
Sharding-Cluster提供程序监听集群拓扑事件,并根据集群中节点的当前状态创建或删除动态提供程序。
类型 |
sharding-cluster |
区 |
在分片机制中定义的区域。读/写策略采用基于区域的提供程序。 |
lenientLimit |
默认值:1(从5.4版本开始。注意,对于配置了自定义链且不使用内置模板的文件存储, 的最低成功写的数量必须维护才能成功上传.下一个平衡循环(由GC机制触发)将最终将二进制文件传输到足够多的节点,以便保留冗余承诺。 例如,如果 当前活动节点的数量必须始终大于或等于配置的lenientLimit。如果设置为0,则必须保留冗余值。 |
dynamic-provider |
可以根据集群拓扑的更改动态添加和删除的提供者类型。目前只有远程二进制提供程序作为动态提供程序支持。 |
例子
crossNetworkStrategy crossNetworkStrategy 2 1 filestore1 15000 5000 15000 200 2 remote
远程二进制提供程序
这个二进制提供程序不是独立的,总是作为更复杂的提供程序模板链的一部分使用。如果读或写操作失败,这个二进制提供程序会通知层次结构中的父提供程序。
远程二进制提供程序将一个节点链接到集群中的所有其他节点,这意味着它使每个节点都能“看到”每个其他节点的文件存储。
类型 |
远程 |
connectionTimeout |
默认值:5000 ms 传出连接超时前的时间。 |
socketTimeout |
默认值:15000 ms 已建立的连接超时前的时间(即没有数据通过线路发送)。 |
maxConnections |
默认值:200 提供程序的最大传出连接数。 |
connectionRetry |
默认值:2 重试连接到远程端点的次数。 |
区 |
提供程序所在的分片区域的名称(仅适用于分片提供程序)。 |
checkPeriod |
默认值:15000 ms 如果提供程序在任何时候发生致命错误,则两次尝试重新激活提供程序之间的最小等待时间。 |
例子
以下是如何配置远程二进制提供程序的示例。看看这是如何与一个完整的binarystore.xml
配置请参考下面的示例分片-集群二进制提供程序.
15000 5000 15000 200 2 remote
从头开始配置自定义文件存储
为较旧的Artifactory版本配置文件存储
对于4.6以下的Artifactory版本,使用的文件存储在美元ARTIFACTORY_HOME / etc / storage.properties
文件如下
binary.provider.type |
文件系统(默认) fullDb cachedFS S3 |
binary.provider.cache.maxSize |
该值指定在系统上为缓存blob分配的最大缓存大小(以字节为单位)。 |
binary.provider.filesystem.dir |
如果binary.provider.type 设置为文件系统这个值指定二进制文件的位置(默认值:ARTIFACTORY_HOME /数据/ filestore美元 ). |
binary.provider.cache.dir |
缓存的位置。这应该直接设置为$ARTIFACTORY_HOME目录(而不是在NFS上)。 |