使用最新版本?
JFrog平台用户指南
JFrog Artifactoryx文档
要获取最新版本,请访问JFrog统一平台
基本配置要素
对于基本的文件存储配置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
配置文件应该是这样的:
模板里有什么?
在本例中,文件存储库和临时文件夹位于计算机的根目录下。
/var/opt/jfrog/data / fileStoreDir> /tmp
地点:
类型 |
文件系统 |
baseDataDir |
默认值: |
fileStoreDir |
默认值: |
tempDir |
默认值: |
缓存文件系统二进制提供程序
的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
配置文件应该是这样的:
模板里有什么?
本例将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二进制提供程序
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 EC2容器服务交付的凭据。
通过Amazon EC2元数据服务交付的实例概要凭证。
Amazon S3官方SDK模板用于S3 Cloud的配置存储和支持下面的一组参数。
类型 |
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加密密钥ID或别名的KMS加密客户端。 |
kmsKeyRegion |
默认值=N/A(来自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,或者为s3和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供应商,请参考缓存文件系统二进制提供程序。
欲知有关最终供应商,请参考最终二进制提供程序。
欲知有关重试供应商,请参考重试二进制提供程序。
例子
本例使用您的凭据设置s3pre-signing,并将预签名URL设置为10分钟(600秒)。
http://s3.amazonaws.com bucketName pathPrefix s3Region yourIdentity yourCredentials < usepresing >true usepresing >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…和 |
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模板配置
binarystore.xml
配置文件应该是这样的:http://s3.amazonaws.com [ENTER identity HERE] [ENTER CREDENTIALS HERE] [ENTER path HERE] [ENTER BUCKET NAME HERE]
模板里有什么?
而您不需要在binarystore.xml,这是什么s3模板看起来像在引擎盖下。
示例1
OpenStack Object Store Swift的配置。
XXXXXXXXX XXXXXXXX < httponly >false httponly >< property name="s3service. net "/>Disable-dns-buckets " value="true">
示例2
XXXXXXXXXX XXXXXXXXXXXXXXXXX [我的CEPH桶名] false httponly > provider>
示例3
XXXXXXXXX XXXXXXXX [My CleverSafe Server] [My CleverSafe Bucket] < httponly >false httponly >
示例4
XXXXXXXXXX XXXXXXXXXXXXXXXXX [我的s3服务器] [我的s3桶名] [http代理主机名] [http代理端口号] XXXXX XXXX provider>
示例5
XXXXXX s33.amazonaws.com [mybucketname] true
例子6
XXXXXXXXX XXXXXXXX s3amazonaws.com [mybucketname] 服务器端加密" value="AES256">
例7
S3使用KMS(密钥管理服务)类型服务器端加密时的配置。
XXXXXXXXX XXXXXXXX s3amazonaws.com [mybucketname] 服务器端加密" value="aws:kms">
示例8
XXXXXXXXXX XXXXXXXXXXXXXXXXX <我的ECS服务器> < httpsPort><我的ECS服务器SSL端口>[我的ECS桶名]
旧二进制提供程序
下面的代码片段显示了一个使用S3二进制提供程序的示例,其中JClouds是底层框架。
旧模板配置
AWS的配置。
因为必须配置s3Old提供特定于您帐户的参数(但可以将所有其他参数保留为推荐值),如果您选择使用此模板,则您的binarystore.xml
配置文件应该是这样的:
XXXXXXXXX XXXXXXXX s3amazonaws.com [mybucketname]
模板里有什么?
而您不需要在binarystore.xml,这是什么s3Old模板看起来像在引擎盖下。
谷歌存储二进制提供程序原生客户端模板
“Google - Storage -v2”模板用于通过Google本地客户端配置Google Cloud Storage作为远程文件存储。
身份验证机制
身份验证是使用Google自动生成的凭证文件建立的。
认证决议令
我们支持三种解决方法
身份验证解析顺序如下:
' useinstancecredals ' == true &&设置“GOOGLE_APPLICATION_CREDENTIALS”环境变量
' useinstancecredals ' == true && useKubernetes(或其他)服务帐户信用(没有信用文件)
' 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…和 |
bucketExists |
默认值:false。 当设置为true时,它向二进制提供程序表明,在Google Cloud Storage中已经存在一个桶,因此不需要创建。 |
testConnection |
默认值:真正的 当设置为true时,当Artifactory启动时,二进制提供程序上传和下载一个文件,以验证到云存储提供程序的连接是否完全正常。 |
useInstanceCredentials |
默认值:false。 当设置为true使用时,“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
我的bucket myPath 3 false 10 127.0.0.1 8888 username password 50 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
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存储上的全局唯一容器名称。 |
端点 |
主机名。您应该只使用默认值,除非您需要为测试或生产目的联系不同的端点。 |
httpsOnly |
默认值:真的。 如果您只想通过安全的https连接访问,请设置为true。 |
因为您必须使用特定于您的帐户的参数配置Azure Blob存储提供程序(但可以将所有其他参数保留推荐值),所以如果选择使用此模板,您的binarystore.xml
配置文件应该是这样的:
XXXXXXXX XXXXXXXX https:// .blob.core.windows.net/
模板里有什么?
下面的代码片段显示了使用的默认链azure-blob-storage
作为二进制提供程序:
最终二进制提供程序
这个二进制提供程序不是独立的,并且将始终用作可能出现上传延迟的远程文件存储(例如S3或GCS)的模板链的一部分。为了克服潜在的延迟,文件首先被写入到目录下名为“最终”的文件夹中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. 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 httponly >< property name="s3service. net ">Disable-dns-buckets " value="true"> 10
最终-集群二进制提供程序
这个二进制提供程序不是独立的,并且将始终用作可能出现上传延迟的远程文件存储(例如S3或GCS)的模板链的一部分。为了克服潜在的延迟,文件首先被写入到目录下名为“最终”的文件夹中baseDataDir在本地存储中,然后上传到云提供商的持久存储中。的默认位置最终
文件夹位于美元ARTIFACTORY_HOME /数据
文件夹,不可配置。您需要确保Artifactory对该位置具有完全的读/写权限。
文件下还有两个额外的文件夹eventua
l文件夹:
- _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 provider>
分片二进制提供商
Artifactory提供了一个Sharding Binary Provider,可以让您在一个Sharding文件存储库中管理二进制文件。分片文件存储是在多个物理挂载(M)上实现的存储,它存储具有冗余(R)的二进制对象,其中R <= M。
这个二进制提供程序不是独立的,并且总是作为更复杂的提供程序模板链的一部分使用。要了解分片,请参考Filestore分片。
类型 |
分片 |
lenientLimit |
默认值:1(从5.4版开始)。请注意,对于配置了自定义链且未使用内置模板的文件存储库 的最低写入成功的次数必须维护才能成功上传。下一个平衡周期(由GC机制触发)将最终将二进制文件传输到足够的节点,从而保留冗余承诺。 例如,如果 当前活动节点的数量必须大于或等于配置的lenientLimit。如果设置为0,则必须保持冗余值。 |
readBehavior |
该参数规定了从组成分片文件存储的挂载中读取二进制文件的策略。 可能的值有: 设置轮流捡取(默认):使用轮询策略从每个挂载读取二进制文件。 |
writeBehavior |
该参数规定了将二进制文件写入组成分片文件存储的挂载的策略。可能的值有: 设置轮流捡取(默认):使用轮询策略将二进制文件写入每个挂载。 空闲空间:将二进制文件写入具有最大可用自由空间绝对容量的挂载。 percentageFreeSpace:二进制文件写入挂载时使用可用的空闲空间百分比。 |
冗余 |
默认值:r = 1 应该在文件存储库中为每个二进制文件存储的副本数量。注意,冗余必须小于或等于系统中的挂载数量,Artifactory才能使用此配置。 |
concurrentStreamWaitTimeout |
默认值:30,000毫秒 为了支持指定的冗余,在缓冲区中累积写流,并使用“r”线程(根据指定的冗余)对正在写入的二进制文件的每个冗余副本进行写入。只有当所有冗余线程完成了它们的写操作后,二进制文件才能被认为是已写的。由于所有线程都在争夺写流缓冲区,因此每个线程将在不同的时间完成写操作。该参数指定任何线程等待所有其他线程完成写操作所需的时间(毫秒)。 如果写操作失败,可以尝试增加该参数的值。 |
concurrentStreamBufferKb |
默认值:32 Kb 如果写操作失败,可以尝试增加该参数的值。 |
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 2remote 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 2remote local http://s3.amazonaws.com [在此输入identity] [输入CREDENTIALS . [在这里输入路径] [在这里输入桶名]
有关cache-fs提供程序可以在缓存文件系统二进制提供程序部分。
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关eventual-cluster子提供商可以在最终二进制提供程序部分。
有关重试提供程序可以在重试二进制提供程序部分。
有关远程动态提供程序可以在远程二进制提供程序部分。
谷歌存储集群二进制提供程序
这是用于的设置谷歌云存储在为HA集群配置文件存储分片时使用JetS3t库。它基于分片和同步集群文件系统的动态提供者逻辑。
在使用cluster-google-storage模板,将数据临时存储在每个节点的文件系统中最终二进制提供程序,然后传递到您的Google存储以进行持久存储。
每个节点都有自己的本地文件存储库(就像在文件系统二进制提供程序),并通过动态分配的节点连接到所有其他集群节点远程二进制提供程序使用分片-集群二进制提供程序。
集群-google-storage模板配置
binarystore.xml
配置文件应该是这样的:commondatastorage.googleapis.com XXXXXX XXXXXXX
模板里有什么?
而您不需要在binarystore.xml,这是什么cluster-google-storage模板看起来像在引擎盖下。
crossNetworkStrategy crossNetworkStrategy 2remote local commondatastorage.googleapis.com XXXXXX XXXXXXX
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关eventual-cluster子提供商可以在最终二进制提供程序部分。
有关重试提供程序可以在重试二进制提供程序部分。
有关远程动态提供程序可以在远程二进制提供程序部分。
Azure Blob存储集群二进制提供程序
这是用于的设置Azure Blob存储。它基于分片和同步集群文件系统的动态提供者逻辑。
在使用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模板下面是这样的:
< provider id="azure-blob-storage" type="azure-blob-storage"> < /提供者> < /提供者> < /链> < !——cluster最终Azure Blob存储服务默认链——> crossNetworkStrategy crossNetworkStrategy 2 1 remote local XXXXXX XXXXXX https:// .blob.core.windows.net/
有关sharding-cluster可以在分片-集群二进制提供程序部分。
有关eventual-cluster子提供商可以在最终二进制提供程序部分。
有关重试提供程序可以在重试二进制提供程序部分。
有关远程动态提供程序可以在远程二进制提供程序部分。
分片-集群二进制提供程序
分片集群二进制提供程序可以与其他二进制提供程序一起用于本地或云本地存储。它增加了crossNetworkStrategy参数作为读写行为,用于验证冗余值和平衡机制。它必须包含远程二进制提供程序在其动态提供程序设置中,允许跨集群同步提供程序。
Sharding-Cluster提供程序监听集群拓扑事件,并根据集群中节点的当前状态创建或删除动态提供程序。
类型 |
sharding-cluster |
区 |
在分片机制中定义的区域。读/写策略采用基于区域的提供者。 |
lenientLimit |
默认值:1(从5.4版开始)。请注意,对于配置了自定义链且未使用内置模板的文件存储库 的最低写入成功的次数必须维护才能成功上传。下一个平衡周期(由GC机制触发)将最终将二进制文件传输到足够的节点,从而保留冗余承诺。 例如,如果 当前活动节点的数量必须大于或等于配置的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
从头开始配置自定义文件存储库
为旧的工件版本配置文件存储库
对于低于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上)。 |