ARTIFACTORY:我应该如何切换到使用谷歌本地客户端?

Amit Turgeman
2022-07-17 15:51

为什么要切换到本机客户机?

不再维护JetS3t库。因此,这个模板在Artifactory中被弃用了。使用Google -storage-v2作为解决方案,它使用Google本地客户机。从google-storage到google-storage-v2之间的过渡应该是无缝的,因为两个提供商之间的大多数参数是相同的。

如何判断我使用的是哪个客户端?

文件存储配置文件位置:

  • Artifactory 6。x→ $ARTIFACTORY_HOME/etc/binarystore.xml.
  • Artifactory 7。x→ $JFROG_HOME/artifactory/var/etc/artifactory/binarystore.xml.

如果配置使用以下提供程序之一,这意味着已经使用了Google本机客户端。

  • type = " google-storage-v2 "
  • type = " cluster-google-storage-v2 "

为什么要放弃JetS3t库呢?

  1. 不推荐使用。上一次发布是在2015年。
  2. 问题越来越多,包括安全问题。
  3. 为了支持S3中可用的最新特性,在开发JetS3t时没有考虑到这些特性。

切换到v2:

v1

v2

链模板= " google storage "

链模板= " google-storage-v2 "

提供商id="google-storage"类型="google-storage"

Provider id="google-storage-v2" type="google-storage-v2"

链模板= " cluster-google-storage "

链模板= " cluster-google-storage-v2 "

更新文件后,Artifactory将重新启动这些更改,它将切换到使用Google本地客户机。

注意!如果您在Google - storage提供程序中使用了任何专用的JetS3t属性,那么新的Google本机客户端将不支持这些属性。

但是,请检查参数是否公开在文档中,如果是,请在“google-storage-v2”provider部分中设置它。

例如:
使用专用的JetS3t属性:
端点> < commondatastorage.googleapis.com > < /端点
< bucketName > BUCKET_NAME < / bucketName >
<属性名= " httpclient。最大连接“价值= " 300 " / >
<标识> XXXXXX > < /身份
<凭证> XXXXXX < /证书>
> < /供应商

转向google-storage-v2:
端点> < commondatastorage.googleapis.com > < /端点
< bucketName > BUCKET_NAME < / bucketName >
300年< maxConnections > < / maxConnections >
> < /供应商
在上面的例子中,没有定义useinstancecredals。

因此,默认值将分配,假,和下面的流程身份验证解析顺序如下

' useinstancecredals ' == false &&将creds文件保存在默认路径[arti_home_full_path]/etc/gcp.credentials.json下。

例子:

旧配置#1 -带有属性的“google-storage”

<配置版本=“v1”>
<链模板= " google storage " / >

端点> < commondatastorage.googleapis.com > < /端点
<路径> filestore > < /路径
< bucketName > BUCKET_NAME < / bucketName >
<标识> XXXXXX > < /身份
<凭证> XXXXXXX < /证书>
> < /供应商
< / config >

下面的示例使用第一种身份验证机制。' useinstancecredals ' == true &&设置“GOOGLE_APPLICATION_CREDENTIALS”环境变量

有关解析身份验证解析的其他方法,请使用下面的链接。
Google storage v2 -身份验证机制

先决条件:

  • 创建服务帐户密钥→以json格式下载。
  • 复制服务帐户。json到Artifactory实例。
  • 导出路径到service- account。Json作为环境变量:
    • 环境变量名称→GOOGLE_APPLICATION_CREDENTIALS
    • 出口GOOGLE_APPLICATION_CREDENTIALS = '完整/道路/ / service-accunt.json

迁移配置#1 -带有属性的“google-storage-v2”:

<配置版本=“v2”>
<链模板= " google-storage-v2 " / >

端点> < commondatastorage.googleapis.com > < /端点
<路径> filestore > < /路径
< bucketName > BUCKET_NAME < / bucketName >
真正< bucketExists > < / bucketExists >
真正< useInstanceCredentials > < / useInstanceCredentials >
> < /供应商
< / config >

旧配置#2 -简单的“cluster-google-storage”:

<配置version = " 2 " >
<链模板= " cluster-google-storage " >

<提供者id = " sharding-cluster-eventual-google-storage "
type = " sharding-cluster " >



端点> < commondatastorage.googleapis.com > < /端点
<路径> filestore > < /路径
< bucketName > BUCKET_NAME < / bucketName >
<标识> XXXXXX > < /身份
<凭证> XXXXXXX < /证书>
> < /供应商
< / sub-provider >

> < /供应商
> < /供应商
< / >链
< / config >

迁移配置#2 -简单的“cluster-google-storage-2”:

<配置version = " 2 " >
<链模板= " cluster-google-storage-v2 " >





端点> < commondatastorage.googleapis.com > < /端点
<路径> filestore > < /路径
< bucketName > BUCKET_NAME < / bucketName >
真正< bucketExists > < / bucketExists >
真正< useInstanceCredentials > < / useInstanceCredentials >
> < /供应商
< / sub-provider >

> < /供应商
> < /供应商
< / >链
< / config >