aws cli 上传文件到s3命令_使用Artifactory集群作为文件共享中心

一、背景和痛点

大企业内部,跨团队,跨地域,导致文件共享困难

如果不使用Artifactory,如何实现跨数据中心的文件共享呢?

  • 挂载NFS文件系统,开通跨数据中心的rsync/sftp协议
  • 自研解决方案,通过REST API或者CLI方式, 例如,雅虎的dist工具
  • 私有或者公有的云储存方案
  • 利用SCM版本控制系统

- 对于编译构建效率影响很大

NFS和云储存的方式对网络要求很高,稳定性得不到保证。自研的方式需要投入很多人力物力,利用SCM版本控制工具对二进制文件支持不好,尤其是大文件,还有可能会对构建效率造成影响。可以看到上面几种方式稳定性不能保证,而且需要额外的投入。

二、 Artifactory用作文件共享中心

那么,Artifactory 如何解决这个问题:

首先,虽然Artifactory被当做管理全语言二进制文件的制品仓库。Artifactory通常被集成到构建流程中,这样构建工件可以方便的部署到不同环境或者用于后续Docker镜像和亚马逊系统镜像的构建。

然而,Artifactory首先是一个支持元数据的文件管理系统,可以管理任何类型文件以及相关数据,利用其可以在集群之间同步复制的功能,也可以被用作跨数据中心分发不同类型文件的通用平台。

架构图

12d8c4157072a5503d7feb36d14db72a.png
215294d12d1e323059037abee52ac681.gif

只允许在指定的一个Artifactory集群上传,然后同步到其它生产环境。例如: IDC1,IDC2,AWS这几个环境不允许手动上传,只允许从Corp环境同步,确保数据的来源只有一个,保证数据的一致性。

搭建步骤

对于Artifactory用户来说,只需要创建相应对的共享仓库,然后开启同步功能即可,不需要增加额外的投入。而且同步功能对网络要求不高。

开启Artifactory的同步功能:

上传下载文件

例如, 将sharefile.tgz上传到my-local-repo仓库

命令行方式:

jfrog rt u  sharefile.tgz  my-local-repo
215294d12d1e323059037abee52ac681.gif

REST API方式:

curl -H "X-JFrog-Art-Api: ${API_KEY}" -X PUT "${artURL}/ my-local-repo/sharefile.tgz " -T sharefile.tgz
215294d12d1e323059037abee52ac681.gif

下载sharefile.tgz 文件

命令行方式:

jfrog rt dl my-local-repo/sharefile.tgz
215294d12d1e323059037abee52ac681.gif

REST API方式:

curl -H "X-JFrog-Art-Api: ${API_KEY}" -X GET "${artURL}/my-local-repo/ sharefile.tgz " -o sharefile.tgz
215294d12d1e323059037abee52ac681.gif

这样即可进行文件的上传和下载,一旦上传成功,会自动触发同步机制,推送到远端的 Artifactory Server 或者公有云的 Artifactory Server。

三、 收益

使用Artifactory的好处

Artifactory已经是CI/CD流程的一部分,可以方便的集成

对于跨数据中心的文件分发只需要开启同步功能

  • 对网络要求不高
  • 具备友好的界面供用户使用
  • 支持REST API方式上传和下载文件,方便实现自动化
  • 统一多数据中心的文件来源,确保文件一致

使用Artifactory可以解决的问题

  • 管理第三方工具和包

- 可以指定特殊版本

- 解决网络访问受限的情况

  • 作为DevOps流程中配置文件和资源文件管理的中心
  • 储存不适合在代码版本控制系统中管理的文件

- 大文件

- 二进制文件

  • 储存数据库备份和应用目录的快照

- 可以作为灾备系统的一部分

更多精彩内容可以专注我们的在线课堂

微信搜索公众号:jfrogchina 获取课程通知

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值