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

Amit Turgeman
2023-01-22 11:06

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

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

如何知道我在使用哪个客户端?

文件存储配置文件位置:

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

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

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

为什么要远离JetS3t库?

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

切换到v2:

v1

v2

链模板= " google storage "

链模板= " google-storage-v2 "

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

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

链模板= " cluster-google-storage "

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

在更新文件之后,重新启动Artifactory将启动这些更改,并且它将切换到使用谷歌本机客户机。

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

但是,检查参数是否暴露在文档中,如果有,请在“google-storage-v2”提供程序部分中设置它。

例如:
使用专用的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 >
> < /供应商
在上面的例子中,没有定义useInstanceCredentials。

因此,默认值会赋值,假的,和下面的流量的身份验证解析顺序如下

' useInstanceCredentials ' == 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 >

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

对于解决身份验证解决方案的其他方法,请使用下面的链接。
谷歌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 >