跳到元数据的末尾
转到元数据的开始

概述

JFrog Artifactory提供灵活的文件存储管理,可以对其进行配置,以满足二进制存储提供者、存储大小和冗余方面的各种需求。现在,您不仅可以使用不同的存储提供程序,还可以将一系列提供程序链接在一起,以构建二进制提供程序的复杂结构,并支持存储的无缝和无限增长。

提供灵活的文件存储管理binarystore.xml配置文件位于$ ARTIFACTORY_HOME /等文件夹中。通过修改这个文件,您可以实现各种不同的二进制存储配置。

修改binarstore .xml时要小心

更改此文件可能会导致丢失存储在Artifactory中的二进制文件!

如果你不确定你在做什么,请联系JFrog支持寻求帮助。

链和二进制提供程序

binarystore.xmlFile指定具有一组二进制提供程序的链。一个二进制提供者表示一种对象存储特性,如“缓存文件系统”。二进制提供程序可以相互嵌入以形成它表示一个一致的文件存储。人工制品有一个内置链组对应于binary.provider.type参数,该参数在以前版本的Artifactory中使用。Artifactory中可用的内置链集有:

  • 文件系统

  • cache-fs

  • full-db

  • full-db-direct

  • s3

  • google storage
  • double-shards

  • redundant-shards
  • 集群文件系统
  • cluster-s3
  • cluster-google-storage
  • cluster-azure-blob-storage

配置内置文件存储

要配置Artifactory以使用一个内置文件存储库,您只需要一些基本的配置元素。



页面内容


基本配置要素

对于基本的文件存储配置binarystore.xml文件非常简单,包含下面描述的基本标签或元素以及它们可能包括的属性:

配置标签

<设置>标记指定文件存储配置。它包括版本属性以允许对配置进行版本控制。

 

链元素

config标签包含一个元素,该元素定义文件存储库的结构。要使用一个内置的文件存储库,chain元素需要包含相应的模板属性。例如,要使用内置的基本"文件系统模板,你所需要的是以下配置:

  

内置的模板

下面几节描述Artifactory内置的基本链模板,以及默认链中包含的其他二进制提供程序。

关于每个模板的更多信息可以在下面的内置链模板部分中找到。

文件系统

Artifactory最基本的文件存储配置,用于本地或挂载的文件存储。

cache-fs

工作方式与文件系统相同,但也缓存使用LRU(最近最少使用)协议清理的下载请求。提高I/O操作高或NFS访问慢的实例的性能。

full-db

所有元数据和二进制文件都以blob的形式存储在数据库中,并有一个额外的缓存层。

full-db-direct
所有元数据和二进制文件都作为blob存储在数据库中,没有缓存。
s3

这是用于的设置S3对象存储使用JetS3t库。

s3Old
这是用于的设置S3对象存储使用JCloud作为底层框架。
google storage
这是用于Google 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 Storage它基于分片和同步集群文件系统的动态提供者逻辑。


修改现有文件存储

为了满足您对文件存储库的任何特定需求,您可以通过使用额外的二进制提供程序或覆盖其属性来扩展现有的链模板之一。例如,内置文件系统链模板将二进制文件存储在ARTIFACTORY_HOME /数据/ filestore美元目录中。修改模板,使其将二进制文件存储在FILESTORE美元/二进制文件您可以将其扩展如下:

< !——文件系统链模板结构——>     $FILESTORE/binaries 属性——>  

内置链模板

Artifactory附带了一组内置的链模板,允许您设置各种开箱即用的不同文件存储库。但是,要覆盖内置文件存储库,您需要熟悉其中使用的每个二进制提供程序的可用属性。这些将在下面的章节中描述,这些章节还展示了模板配置以及每个模板中的“底层”内容。此外,还可以找到所有模板的用法示例。

文件系统二进制提供程序

这是Artifactory的基本文件存储配置,用于本地或挂载的文件存储。

文件系统模板配置

如果您选择使用文件系统模板,你binarystore.xml配置文件应该是这样的:

  


模板里有什么?
而您不需要在binarystore.xml,这是什么文件系统模板看起来像在引擎盖下。

在本例中,文件存储库和临时文件夹位于计算机的根目录下。

   /var/opt/jfrog/data / fileStoreDir> /tmp  

地点:

类型
文件系统
baseDataDir

默认值:美元ARTIFACTORY_HOME /数据

Artifactory应该存储数据文件的根目录。
fileStoreDir

默认值:filestore

文件存储库二进制文件的根文件夹。如果指定的值以正斜杠(“/”)开头,则认为该值是指向文件存储库文件夹的完全限定路径。否则,它被认为是相对于baseDataDir
tempDir

默认值:tmp

下的临时文件夹baseDataDirArtifactory将文件写入其中以供内部使用。这个必须和。在同一个磁盘上fileStoreDir

缓存文件系统二进制提供程序

cache-fs作为使用LRU(最近最少使用)作为其清理协议的二进制缓存。这可以提高Artifactory的性能,因为频繁的请求将从cache-fs(如S3二进制提供程序的情况)。

cache-fs二进制提供程序将是Artifactory最接近的文件存储层。这意味着如果文件存储被挂载,我们将需要cache-fs在工件服务器本身上是本地的(如果文件存储是本地的,那么cache-fs就没有意义)。如果是HA配置,则cache-fs将被挂载,建议每个节点都有自己的cache-fs层。


Cache-fs模板配置

如果您选择使用cache-fs模板,你binarystore.xml配置文件应该是这样的:

  
模板里有什么?
而您不需要在binarystore.xml,这是什么cache-fs模板看起来像在引擎盖下。

本例将cache-fs大小设置为10GB,其位置(以“/”开头的绝对路径)设置为/cache/filestore。

   /cache/filestore 10000000000  

地点:

类型
cache-fs
maxCacheSize

默认值:5000000000 (5GB)

中为缓存分配的最大存储空间字节。请注意,maxCacheSize可以包括正在上传的文件(保存在cache/_pre下);因此,建议保留_pre文件夹的额外空间
cacheProviderDir

默认值:缓存

用于文件存储缓存的二进制文件的根文件夹。如果指定的值以正斜杠(“/”)开头,则将其视为指向文件存储库文件夹的完全限定路径。否则,它被认为是相对于baseDataDir

全数据库二进制提供程序

这个二进制提供程序将所有元数据和二进制内容作为blob保存在数据库中,并在文件系统上增加了一层缓存。
缓存可以提高Artifactory的性能,因为频繁的请求将从cache-fs在访问数据库之前。


全数据库模板配置

如果您选择使用full-db模板,你binarystore.xml配置文件应该是这样的:

  
模板里有什么?

而您不需要在binarystore.xml,这是什么full-db模板看起来像在引擎盖下。
欲知有关cache-fs供应商,请参考缓存文件系统二进制提供程序
provider处理元数据和二进制内容作为blob在数据库中的实际保存。

     


Full-DB-Direct二进制提供程序

该二进制提供程序将所有元数据和二进制内容保存为数据库中的blob,而不使用缓存层。
Full-db-direct模板配置

如果您选择使用full-db-direct模板,你binarystore.xml配置文件应该是这样的:


  
模板里有什么?

而您不需要在binarystore.xml,这是什么full-db-direct模板看起来像在引擎盖下。
provider处理元数据和二进制内容作为blob在数据库中的实际保存。

   

云存储提供商


云对象存储支持

从6.15版本开始,JFrog Container Registry和Artifactory Pro支持使用来自主要SaaS提供商的云对象存储,包括亚马逊的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提供者链凭证。默认的Amazon Provider链按照以下顺序搜索凭据:

Amazon S3官方SDK模板用于S3 Cloud的配置存储和支持下面的一组参数。

类型

s3-storage-v3

testConnection

默认值:真正的

当设置为true时,当Artifactory启动时,二进制提供程序上传和下载一个文件,以验证到云存储提供程序的连接是否完全正常。

身份

您的云存储提供商标识。

凭证

您的云存储提供商身份验证凭证。

地区

您希望使用的云存储提供商提供的区域。

bucketName

您的全局唯一桶名。

路径

默认值:filestore
相对于存储二进制文件的桶的路径。

rootFoldersNameLength

默认值:2

对象的校验和中应用于命名存储中的文件夹的初始字符数。这个值可以是0到5.0之间的任意值,这意味着校验和文件将存储在对象存储桶的根节点。

例如,如果对象的校验和为8c335149…和rootFoldersNameLength设置为4,则存储对象的文件夹将命名为8c33。

proxyIdentity

通过代理服务器访问云存储提供商时对应的参数。

proxyCredential
proxyPort
proxyHost
端点

云存储提供商的URL。

kmsServerSideEncryptionKeyId

默认= N / A。仅适用于“s3-storage-v3”模板。

使用给定KMS加密密钥ID或别名的KMS加密客户端。

kmsKeyRegion
默认值=N/A(来自Artifactory 6.13)
设置要从给定区域获取的KMS密钥。如果没有提供,请使用region参数代替。如果没有提供区域,则使用默认的AWS区域。
kmsCryptoMode

默认值:EncryptionOnly。仅适用于“s3-storage-v3”模板。

使用KMS加密与以下加密策略之一:

  • EncryptionOnly
  • AuthenticatedEncryption
  • StrictAuthenticatedEncryption

有关更多信息,请参见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,或者为s3和s3模板

文件大小阈值(以字节为单位),超过该阈值,文件上传将被分块和多线程处理。

transferManagerThreads

默认值:10。仅适用于“s3-storage-v3”模板。

适用于当usePresigning设置为false

适用于通过multiPartLimit配置的多部件上传。

signatureExpirySeconds

默认值:300

usePresigning如果设置为true,则该参数设置内部用于上传和下载的签名url的有效时间(以秒为单位)。

maxConnections

默认值:50。

设置AWS客户端的最大HTTP客户端连接数

connectionTimeout

默认值:10 x1000。

设置AWS客户端的连接超时时间(毫秒)。

socketTimeout

默认值:50 * 1000。

设置AWS客户端的套接字超时时间(毫秒)。

enablePathStyleAccess

默认值:假

Amazon S3支持virtual-hosted-stylepath-style所有地区的访问权限。

path-style语法要求在尝试访问存储桶时使用特定于区域的端点。对于非aws用户,可能需要将此属性设置为true。

disableChunkedEncoding

默认值:假

默认行为是自动启用分块编码PutObjectRequestUploadPartRequest
设置此标志将导致禁用所有请求的分块编码,这可能会影响性能。

只有当您的端点没有实现分块上传时,才建议使用此选项。

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供应商,请参考缓存文件系统二进制提供程序
欲知有关最终供应商,请参考最终二进制提供程序
欲知有关重试供应商,请参考重试二进制提供程序

例子

本例使用您的凭据设置s3pre-signing,并将预签名URL设置为10分钟(600秒)。

   http://s3.amazonaws.com bucketName pathPrefix s3Region yourIdentity yourCredentials < usepresing >true 600  


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…和rootFoldersNameLength设置为4,则存储对象的文件夹将命名为8c33。

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会在端点前面添加桶名(例如:mybucket.s3.aws.com)来创建一个访问S3 bucket的URL。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存储桶进行操作。
useSignature

默认值:假

当设置为true时,适用于已签名的url,用于在s3对象上添加、删除和获取客户端方法。此参数还启用直接下载云存储(企业+)。

signedURLExpirySeconds

默认值:30

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

signatureExpirySeconds
默认值:300(可选)
useSignature设置为true时,该参数表示签名后的S3signature访问S3的秒数。
下面的代码片段显示了基本的模板配置和使用S3二进制提供程序来支持几种配置(CEPH、CleverSafe等)的示例。
S3模板配置
因为必须配置s3提供特定于您帐户的参数(但可以将所有其他参数保留为推荐值),如果您选择使用此模板,则您的binarystore.xml配置文件应该是这样的:


   http://s3.amazonaws.com [ENTER identity HERE] [ENTER CREDENTIALS HERE] [ENTER path HERE] [ENTER BUCKET NAME HERE]   


模板里有什么?

而您不需要在binarystore.xml,这是什么s3模板看起来像在引擎盖下。

            


欲知有关cache-fs供应商,请参考缓存文件系统二进制提供程序

欲知有关最终供应商,请参考最终二进制提供程序
欲知有关重试供应商,请参考重试二进制提供程序
示例1

OpenStack Object Store Swift的配置。


   XXXXXXXXX XXXXXXXX   < httponly >false< property name="s3service. net "/>Disable-dns-buckets " value="true">  

示例2
CEPH的配置。


   XXXXXXXXXX XXXXXXXXXXXXXXXXX   [我的CEPH桶名]  false 
示例3
CleverSafe的配置。

   XXXXXXXXX XXXXXXXX [My CleverSafe Server]  [My CleverSafe Bucket] < httponly >false   
示例4
S3的配置,在Artifactory和S3 bucket之间有一个代理。

   XXXXXXXXXX XXXXXXXXXXXXXXXXX [我的s3服务器] [我的s3桶名] [http代理主机名] [http代理端口号] XXXXX  XXXX 
示例5
S3使用IAM角色代替IAM用户的配置。

   XXXXXX  s33.amazonaws.com  [mybucketname] true  
例子6
使用服务器端加密时S3的配置。

   XXXXXXXXX XXXXXXXX  s3amazonaws.com  [mybucketname] 服务器端加密" value="AES256">  
例7

S3使用KMS(密钥管理服务)类型服务器端加密时的配置。

   XXXXXXXXX XXXXXXXX  s3amazonaws.com  [mybucketname] 服务器端加密" value="aws:kms">  
示例8
使用时S3的配置EMC弹性云存储(ECS)

   XXXXXXXXXX XXXXXXXXXXXXXXXXX <我的ECS服务器> < httpsPort><我的ECS服务器SSL端口>  [我的ECS桶名]   

旧二进制提供程序

下面的代码片段显示了一个使用S3二进制提供程序的示例,其中JClouds是底层框架。

旧模板配置

AWS的配置。
因为必须配置s3Old提供特定于您帐户的参数(但可以将所有其他参数保留为推荐值),如果您选择使用此模板,则您的binarystore.xml配置文件应该是这样的:


   XXXXXXXXX XXXXXXXX  s3amazonaws.com  [mybucketname]  


模板里有什么?

而您不需要在binarystore.xml,这是什么s3Old模板看起来像在引擎盖下。


            

欲知有关cache-fs供应商,请参考缓存文件系统二进制提供程序

欲知有关最终供应商,请参考最终二进制提供程序
欲知有关重试供应商,请参考重试二进制提供程序

谷歌存储二进制提供程序原生客户端模板

“Google - Storage -v2”模板用于通过Google本地客户端配置Google Cloud Storage作为远程文件存储。

身份验证机制

身份验证是使用Google自动生成的凭证文件建立的。

认证决议令

我们支持三种解决方法

身份验证解析顺序如下:

  1. ' useinstancecredals ' == true &&设置“GOOGLE_APPLICATION_CREDENTIALS”环境变量

  2. ' useinstancecredals ' == true && useKubernetes(或其他)服务帐户信用(没有信用文件)

  3. ' useinstancecredals ' == false &&将信用文件保存在default路径[arti_home_full_path] / etc / gcp.credentials.json。

    授予“云功能服务代理”角色转换为所使用的服务帐户,以便使用实例的凭据。

    Artifactory搜索名为GOOGLE_APPLICATION_CREDENTIALS包含凭据文件的路径。如果环境变量不存在,则计算引擎、Kubernetes引擎、App引擎和Cloud Functions提供的默认服务帐户将用于运行在这些服务上的应用程序。

下面的代码片段显示了基本的google-storage-v2模板配置和使用Google Cloud Storage二进制提供程序的示例。

这个二进制提供程序使用以下一组参数:

类型

google-storage-v2

bucketName
您的全局唯一桶名。
路径
默认值:filestore
设置相对于存储二进制文件的桶的路径。
rootFoldersNameLength

默认值:2。

对象的校验和中应用于命名存储中的文件夹的初始字符数。它可以取0 - 6之间的任意值。0表示校验和文件将存储在对象存储桶的根位置。例如,如果对象的校验和为8c335149…rootFoldersNameLength如果将其设置为4,则存储该对象的文件夹将命名为8c33。

bucketExists

默认值:false。

当设置为true时,它向二进制提供程序表明,在Google Cloud Storage中已经存在一个桶,因此不需要创建。

testConnection

默认值:真正的

当设置为true时,当Artifactory启动时,二进制提供程序上传和下载一个文件,以验证到云存储提供程序的连接是否完全正常。

useInstanceCredentials

默认值:false。

当设置为true使用时,“GOOGLE_APPLICATION_CREDENTIALS”环境变量将查找凭据或使用默认服务帐户。
当设置为false时,使用默认路径查找凭据文件。

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
   我的bucket myPath 3 false 10 127.0.0.1 8888 username password50 120000  


Google存储二进制提供商

“Google - Storage”模板用于配置Google Cloud Storage作为远程文件存储。

下面的代码片段显示了基本模板配置和使用Google Cloud Storage二进制提供程序的示例。

这个二进制提供程序使用以下一组参数:

类型

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 Cloud Storage中已经存在一个桶,因此不需要创建。

谷歌存储模板配置

因为必须配置google storage提供特定于您帐户的参数(但可以将所有其他参数保留为推荐值),如果您选择使用此模板,则您的binarystore.xml配置文件应该是这样的:

   commondatastorage.googleapis.com  XXXXXX XXXXXXX  

模板里有什么?

而您不需要在binarystore.xml,这是什么google storage模板看起来像在引擎盖下。


           

欲知有关cache-fs供应商,请参考缓存文件系统二进制提供程序
欲知有关最终供应商,请参考最终二进制提供程序
欲知有关重试供应商,请参考重试二进制提供程序


示例1
带有来自JetS3t库的动态属性的配置。在本例中,httpclient.max-connections参数设置全局允许的最大同时连接数(默认为100)。

   commondatastorage.googleapis.com  XXXXXX XXXXXXX   

Azure Blob存储二进制提供程序

Azure - Blob - Storage模板用于将Azure Blob Storage配置为远程文件存储。

下面的代码片段显示了基本模板配置和使用Azure Blob Storage二进制提供程序的示例。

这个二进制提供程序使用以下一组参数:

testConnection

默认值:真正的

如果为true, Artifactory将在启动时上传和下载一个文件,以验证到云存储提供商的连接是否完全正常。

帐号名称

存储帐户可以是通用存储账户或者一个Blob存储帐户专门用于存储对象/blob。

您的云存储提供商标识。

accountKey

您的云存储提供商身份验证凭证。

containerName

您在Azure Blob存储上的全局唯一容器名称。

端点

主机名。您应该只使用默认值,除非您需要为测试或生产目的联系不同的端点。
请注意:如果端点没有在XML文件中定义,它将使用默认值自动生成https:// < ACCOUNT_NAME > .blob.core.windows.net价值。

httpsOnly

默认值:真的。

如果您只想通过安全的https连接访问,请设置为true。


因为您必须使用特定于您的帐户的参数配置Azure Blob存储提供程序(但可以将所有其他参数保留推荐值),所以如果选择使用此模板,您的binarystore.xml配置文件应该是这样的:

   XXXXXXXX XXXXXXXX https://.blob.core.windows.net/   
模板里有什么?

下面的代码片段显示了使用的默认链azure-blob-storage作为二进制提供程序:

         
欲知有关cache-fs供应商,请参考缓存文件系统二进制提供程序
欲知有关最终供应商,请参考最终二进制提供程序
欲知有关重试供应商,请参考重试二进制提供程序

最终二进制提供程序

这个二进制提供程序不是独立的,并且将始终用作可能出现上传延迟的远程文件存储(例如S3或GCS)的模板链的一部分。为了克服潜在的延迟,文件首先被写入到目录下名为“最终”的文件夹中baseDataDir在本地存储中,然后上传到云提供商的持久存储中。的默认位置最终文件夹位于美元ARTIFACTORY_HOME /数据文件夹(或$ CLUSTER_HOME / ha-data在使用Artifactory版本的HA配置的情况下下面5.0),并且不可配置。您需要确保Artifactory对该位置具有完全的读/写权限。

文件夹下还有三个额外的文件夹eventual文件夹:

  • _pre:持久性机制的一部分,确保所有文件在上传到远程文件存储库之前都是有效的
  • _add:处理上传文件到远程文件存储
  • _delete:处理从远程文件存储删除文件
例子

下面的示例显示了一个配置,该配置在使用最终二进制提供程序进行临时存储之后使用S3进行持久存储。最终的提供者为上传配置了10个并行线程和180秒的锁定超时。

< !——S3二进制提供程序配置——>< config version="v1">   XXXXXXXXX XXXXXXXX   < httponly >false< property name="s3service. net ">Disable-dns-buckets " value="true">    10 18000   

地点:

类型
最终
超时
文件被写入或从文件系统删除时可能被锁定的最长时间。
dispatcherInterval

默认值:5000毫秒

提供程序扫描“最终”文件夹以检查应该上传到持久存储的文件的间隔。

numberOfThreads

默认值:5

应该分配用于将文件上传到持久存储的并行线程数。

重试二进制提供程序

这个二进制提供程序不是独立的,并且总是作为更复杂的提供程序模板链的一部分使用。如果读或写操作失败,此二进制提供程序将通知其层次结构中的底层提供程序重试该操作。


类型
重试
时间间隔

默认值:5000毫秒

重试前等待的时间间隔。
maxTrys

默认值:5

在失败响应之前尝试读或写的最大次数。
例子

下面的示例显示了一个配置,该配置使用S3进行持久存储,但是在上传失败的情况下使用重试提供程序保持重试(最多10次)。

< !——S3二进制提供程序配置——>< config version="v1">   XXXXXXXXX XXXXXXXX   < httponly >false< property name="s3service. net ">Disable-dns-buckets " value="true">    10  


最终-集群二进制提供程序

这个二进制提供程序不是独立的,并且将始终用作可能出现上传延迟的远程文件存储(例如S3或GCS)的模板链的一部分。为了克服潜在的延迟,文件首先被写入到目录下名为“最终”的文件夹中baseDataDir在本地存储中,然后上传到云提供商的持久存储中。的默认位置最终文件夹位于美元ARTIFACTORY_HOME /数据文件夹,不可配置。您需要确保Artifactory对该位置具有完全的读/写权限。

文件下还有两个额外的文件夹eventual文件夹:

  • _pre:持久性机制的一部分,确保所有文件在上传到远程文件存储库之前都是有效的
  • _queue:处理将到达远程文件存储库的所有文件操作
id
eventual-cluster
addStalePeriod

默认值:300000毫秒

在…之前等待的时间添加当尝试处理添加不存在于Artifactory中的文件时,action被认为是过时的。

maxWorkers

默认值:5

此提供程序使用的工作线程数。这些线程处理针对远程文件存储库的所有操作。

dispatcherInterval

默认值:1000毫秒

扫描最终目录之间的等待时间。

checkPeriod

默认值:15000毫秒

如果在任何时候出现致命错误,尝试重新激活提供程序之间的最小等待时间。

提供程序所在的分片区域的名称(仅适用于分片提供程序)
例子

下面的配置使用google-storage链模板,并配置10个并行线程用于上传,扫描时间为1秒。

   commondatastorage.googleapis.com  XXXXXX XXXXXXX    5 1000 15000 300000 local  



双重分片,冗余分片

这些二进制提供程序只能通过企业许可证获得。

双碎片二进制提供程序

double-shards模板用于纯分片配置,该配置使用2个物理挂载和1个副本(这意味着每个工件只保存一次)。要了解有关不同分片功能的更多信息,请参考Filestore分片

双分片模板配置

如果您选择使用double-shards模板,你binarystore.xml配置文件应该是这样的:

  
模板里有什么?

而您不需要在binarystore.xml,这是什么double-shards模板看起来像在引擎盖下。
欲知有关cache-fs供应商,请参考缓存文件系统二进制提供程序
欲知有关分片供应商,请参考分片二进制提供商
欲知有关结合分供应商,请参考状态感知二进制提供程序

    1< sub-provider id="shard-fs-1" type="state-aware"/>  1   

冗余碎片二进制提供程序

redundant-shards模板用于纯分片配置,该配置使用2个物理挂载和2个副本(这意味着每个分片存储每个工件的副本)。要了解有关不同分片功能的更多信息,请参考Filestore分片

冗余分片模板配置

如果您选择使用redundant-shards模板,你binarystore.xml配置文件应该是这样的:

  
模板里有什么?

而您不需要在binarystore.xml,这是什么redundant-shards模板看起来像在引擎盖下。
有关cache-fs提供程序可以在缓存文件系统二进制提供程序部分。
有关分片提供程序可以在分片二进制提供商部分。
有关结合子提供商可以在状态感知二进制提供程序部分。

    2< sub-provider id="shard-state-aware-1" type="state-aware"/>  1   

分片二进制提供商

Artifactory提供了一个Sharding Binary Provider,可以让您在一个Sharding文件存储库中管理二进制文件。分片文件存储是在多个物理挂载(M)上实现的存储,它存储具有冗余(R)的二进制对象,其中R <= M。
这个二进制提供程序不是独立的,并且总是作为更复杂的提供程序模板链的一部分使用。要了解分片,请参考Filestore分片

类型
分片
lenientLimit

默认值:1(从5.4版开始)。请注意,对于配置了自定义链且未使用内置模板的文件存储库lenientLimit参数为0以保持与以前版本的一致性。)

最低写入成功的次数必须维护才能成功上传。下一个平衡周期(由GC机制触发)将最终将二进制文件传输到足够的节点,从而保留冗余承诺。
换句话说,在没有临时保留冗余承诺的情况下,宽大管理允许的最小冗余。

例如,如果lenientLimit设置为3,我的设置包括4个文件存储库,其中1个发生故障,写入将继续。如果第二个文件存储发生故障,则写入将停止。

当前活动节点的数量必须大于或等于配置的lenientLimit。如果设置为0,则必须保持冗余值。

readBehavior

该参数规定了从组成分片文件存储的挂载中读取二进制文件的策略。

可能的值有:

设置轮流捡取(默认):使用轮询策略从每个挂载读取二进制文件。

writeBehavior

该参数规定了将二进制文件写入组成分片文件存储的挂载的策略。可能的值有:

设置轮流捡取(默认):使用轮询策略将二进制文件写入每个挂载。

空闲空间:将二进制文件写入具有最大可用自由空间绝对容量的挂载。

percentageFreeSpace:二进制文件写入挂载时使用可用的空闲空间百分比。

冗余
默认值:r = 1

应该在文件存储库中为每个二进制文件存储的副本数量。注意,冗余必须小于或等于系统中的挂载数量,Artifactory才能使用此配置。

concurrentStreamWaitTimeout

默认值:30,000毫秒

为了支持指定的冗余,在缓冲区中累积写流,并使用“r”线程(根据指定的冗余)对正在写入的二进制文件的每个冗余副本进行写入。只有当所有冗余线程完成了它们的写操作后,二进制文件才能被认为是已写的。由于所有线程都在争夺写流缓冲区,因此每个线程将在不同的时间完成写操作。该参数指定任何线程等待所有其他线程完成写操作所需的时间(毫秒)。

如果写操作失败,可以尝试增加该参数的值。

concurrentStreamBufferKb

默认值:32 Kb
在复制写入二进制文件的“r”个冗余副本之前,用于累积写流的写缓冲区的大小。

如果写操作失败,可以尝试增加该参数的值。

maxBalancingRunTime

默认值:3,600,000毫秒(1小时)
一旦恢复了失败的挂载,此参数指定每个平衡会话在失效之前可以运行多长时间,直到下一次垃圾收集完成。更多关于平衡的细节,请参考使用平衡恢复挂载失败

为了在挂载失败后更快地将系统恢复到完全冗余,可以增加此参数的值。如果您发现这会导致整体系统性能的不可接受的下降,您可以考虑降低此参数的值,但这意味着Artifactory恢复完全冗余所花费的总时间将更长。
freeSpaceSampleInterval

默认值:3,600,000毫秒(1小时)

为了实现它的写行为,Artifactory需要定期查询碎片文件存储中的挂载,以检查是否有空闲空间。由于此检查可能是资源密集型操作,因此可以使用此参数来控制空闲空间检查之间的时间间隔。

如果您预计会有一段时间需要密集地上传大量二进制文件,那么您可以考虑降低这个参数的值,以减少系统中挂载之间的短暂不平衡。
minSpareUploaderExecutor

默认值:2

Artifactory维护一个线程池,用于执行对每个冗余存储单元的写操作。根据写活动的强度,最终,一些线程可能会变得空闲,然后成为被终止的候选线程。然而,Artifactory确实需要在写活动再次开始时维护一些线程。该参数指定应该保持活动以提供冗余存储单元的最小线程数。

uploaderCleanupIdleTime

默认值:120,000 ms(2分钟)

线程在成为被杀死的候选对象之前可能保持空闲的最大时间。


状态感知二进制提供程序

此二进制提供程序不是独立的,并且将始终在分片sharding-cluster提供者。提供程序知道其底层磁盘是否正常工作。它和碱性是一样的文件系统但是,它也可以从错误中恢复(父提供程序负责恢复)checkPeriod字段。


类型
结合
checkPeriod

默认值:15000毫秒

如果在任何时候出现致命错误,尝试重新激活提供程序之间的最小等待时间。

writeEnabled

默认值:真正的

从Artifactory 6.18及更高版本开始,启用/禁用二进制提供程序的写操作。如果设置为false,状态感知提供程序将继续提供读请求,因此Artifactory可以继续从该提供程序读取二进制文件。此外,垃圾收集可以继续从提供程序中清除已删除的二进制文件。(仅适用于分片提供商。)

提供程序所在的切分区域的名称。(仅适用于分片提供商。)

配置HA集群分片

这些二进制提供程序只能通过企业许可证获得。

对于高可用性集群,Artifactory提供了支持File-System、S3和Google 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 yourIdentity yourCredentials  
模板里有什么?

虽然您不需要在binarstore .xml中配置任何其他内容,但s3-storage-v3模板的底层是这样的。

              crossNetworkStrategy crossNetworkStrategy  2    remote  local   http://s3.amazonaws.com bucketNamepathPrefix s3Region yourIdentity yourCredentials  


有关cache-fs提供程序可以在缓存文件系统二进制提供程序部分。
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关eventual-cluster子提供商可以在最终-集群二进制提供程序部分。
有关重试提供程序可以在重试二进制提供程序部分。
有关远程动态提供程序可以在远程二进制提供程序部分。

S3集群二进制提供程序

这是用于的设置S3对象存储在为HA集群配置文件存储分片时使用JetS3t库。它基于分片和同步集群文件系统的动态提供者逻辑。
在使用cluster-s3模板将数据临时存储在每个节点的文件系统中最终二进制提供程序,然后传递到S3对象存储以进行持久存储。
每个节点都有自己的本地文件存储库(就像在文件系统二进制提供程序),并通过动态分配的节点连接到所有其他集群节点远程二进制提供程序使用分片-集群二进制提供程序

配置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   http://s3.amazonaws.com [在此输入identity] [输入CREDENTIALS . [在这里输入路径] [在这里输入桶名]  

有关cache-fs提供程序可以在缓存文件系统二进制提供程序部分。
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关eventual-cluster子提供商可以在最终二进制提供程序部分。
有关重试提供程序可以在重试二进制提供程序部分。
有关远程动态提供程序可以在远程二进制提供程序部分。

谷歌存储集群二进制提供程序

这是用于的设置谷歌云存储在为HA集群配置文件存储分片时使用JetS3t库。它基于分片和同步集群文件系统的动态提供者逻辑。
在使用cluster-google-storage模板将数据临时存储在每个节点的文件系统中最终二进制提供程序,然后传递到您的Google存储以进行持久存储。
每个节点都有自己的本地文件存储库(就像在文件系统二进制提供程序),并通过动态分配的节点连接到所有其他集群节点远程二进制提供程序使用分片-集群二进制提供程序

集群-google-storage模板配置
因为必须配置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  
有关cache-fs提供程序可以在缓存文件系统二进制提供程序部分。
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关eventual-cluster子提供商可以在最终二进制提供程序部分。
有关重试提供程序可以在重试二进制提供程序部分。
有关远程动态提供程序可以在远程二进制提供程序部分。

Azure Blob存储集群二进制提供程序

这是用于的设置Azure Blob存储。它基于分片和同步集群文件系统的动态提供者逻辑。
在使用cluster-azure-blob-storage模板将数据临时存储在每个节点的文件系统中最终二进制提供程序,然后传递到Azure Blob Storage以进行持久存储。
每个节点都有自己的本地文件存储库(就像在文件系统二进制提供程序),并通过动态分配的节点连接到所有其他集群节点远程二进制提供程序使用分片-集群二进制提供程序

Cluster-azure-blob-storage模板配置
因为必须配置azure-blob-storage提供特定于您帐户的参数(但可以将所有其他参数保留推荐值),如果您选择使用cluster-azure-blob-storage模板,你binarystore.xml配置文件应该是这样的:


   XXXXXX XXXXXX https://.blob.core.windows.net/   
模板里有什么?

而您不需要在binarystore.xml,这是什么cluster-azure-blob-storage模板下面是这样的:

           < /提供者> < /提供者> < /链> < !——cluster最终Azure Blob存储服务默认链——>  crossNetworkStrategy crossNetworkStrategy 2 1    remote   local  < provider id="azure-blob-storage" type="azure-blob-storage"> XXXXXX XXXXXX https://.blob.core.windows.net/   
有关cache-fs提供程序可以在缓存文件系统二进制提供程序部分。
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关eventual-cluster子提供商可以在最终二进制提供程序部分。
有关重试提供程序可以在重试二进制提供程序部分。
有关远程动态提供程序可以在远程二进制提供程序部分。

分片-集群二进制提供程序

分片集群二进制提供程序可以与其他二进制提供程序一起用于本地或云本地存储。它增加了crossNetworkStrategy参数作为读写行为,用于验证冗余值和平衡机制。它必须包含远程二进制提供程序在其动态提供程序设置中,允许跨集群同步提供程序。

Sharding-Cluster提供程序监听集群拓扑事件,并根据集群中节点的当前状态创建或删除动态提供程序。

类型
sharding-cluster

在分片机制中定义的区域。读/写策略采用基于区域的提供者。

lenientLimit

默认值:1(从5.4版开始)。请注意,对于配置了自定义链且未使用内置模板的文件存储库lenientLimit参数为0以保持与以前版本的一致性。)

最低写入成功的次数必须维护才能成功上传。下一个平衡周期(由GC机制触发)将最终将二进制文件传输到足够的节点,从而保留冗余承诺。
换句话说,在没有临时保留冗余承诺的情况下,宽大管理允许的最小冗余。

例如,如果lenientLimit设置为3,我的设置包括4个文件存储库,其中1个发生故障,写入将继续。如果第二个文件存储发生故障,则写入将停止。

当前活动节点的数量必须大于或等于配置的lenientLimit。如果设置为0,则必须保持冗余值。

dynamic-provider
可以根据集群拓扑变化动态添加和删除的提供者类型。目前只有远程二进制提供程序作为动态提供程序支持。
例子
         crossNetworkStrategy crossNetworkStrategy  21   filestore1   15000 5000 15000 200 2 remote  

远程二进制提供程序

这个二进制提供程序不是独立的,并且总是作为更复杂的提供程序模板链的一部分使用。如果读或写操作失败,此二进制提供程序将通知层次结构中的父提供程序。

远程二进制提供程序将一个节点链接到集群中的所有其他节点,这意味着它使每个节点能够“看到”每个其他节点的文件存储库。

类型
远程
connectionTimeout

默认值:5000毫秒

传出连接超时前的时间。
socketTimeout

默认值:15000毫秒

在已建立的连接超时之前的时间(即没有数据通过线路发送)。
maxConnections

默认值:200

从提供程序传出的最大连接数。

connectionRetry

默认值:2

重试连接到远程端点的次数。

提供程序所在的分片区域的名称(仅适用于分片提供程序)。
checkPeriod

默认值:15000毫秒

如果在任何时候出现致命错误,尝试重新激活提供程序之间的最小等待时间。


例子

以下是如何配置远程二进制提供程序的示例。来看看如何将此集成到一个完整的binarystore.xml配置时,请参考下面的示例分片-集群二进制提供程序

 15000 5000 15000 200 2 remote 

从头开始配置自定义文件存储库

除了下面的内置文件存储链模板之外,您还可以构建自定义链模板来容纳您需要的任何文件存储结构。
由于文件存储库中的不同二进制提供程序必须彼此兼容,因此错误配置可能导致数据丢失。 有关配置自定义文件存储库,请联系JFrog支持


为旧的工件版本配置文件存储库

对于低于4.6的Artifactory版本,所使用的文件存储库在美元ARTIFACTORY_HOME / etc / storage.properties文件如下

binary.provider.type

文件系统(默认)
这意味着元数据存储在数据库中,而二进制文件存储在文件系统中。默认位置在ARTIFACTORY_HOME /数据/ filestore美元然而,这是可以修改的。

fullDb
所有元数据和二进制文件都以blob的形式存储在数据库中。

cachedFS
文件系统但也有一个二进制的LRU(最近最少使用)缓存的上传/下载请求。提高I/O操作高或NFS访问慢的实例的性能。

S3
这是用于的设置S3对象存储

binary.provider.cache.maxSize
该值指定在系统上分配用于缓存blob的最大缓存大小(以字节为单位)。
binary.provider.filesystem.dir
如果binary.provider.type设为文件系统此值指定二进制文件的位置(默认:ARTIFACTORY_HOME /数据/ filestore美元).
binary.provider.cache.dir
缓存的位置。这应该直接设置为$ARTIFACTORY_HOME目录(不在NFS上)。