在我的组织中,我们有一个有趣的问题,我正在尝试找出解决此问题的最佳方法。我们有一个nexus存储库,其中包含约100个文件,总大小超过1 gb。此连结储存库(版本3.x)是在Windows ec2实例上使用s3类型设定的,即s3 blob储存区正用于在后端储存工件。
我们希望它与多个(超过10个)S3存储桶中的文件夹同步。这个联系存储库几乎没有改变,每当改变时,我们希望它与所有S3存储桶自动同步。
此存储库包含少量安装程序msi文件,exe文件和一些Shell脚本。它几乎没有改变,也许每季度一次或两次。可以进行频繁的定期同步,但对我来说似乎有点过头了。而且由于文件大于1gb,所以我更喜欢增量同步。这些文件在实际部署时使用,我们希望确保所有环境的s3存储桶都已同步。
我可以写lambda来更新s3存储桶中的文件夹,但是复制所有文件可能要花费5分钟以上的时间。因此,我在考虑是否有一种方法可以从Nexus到S3 Bucket进行增量同步?
请告知。
答案 0 :(得分:0)
如果您的存储库为Yum格式(在Windows中似乎不太可能),则可以使用reposync
将Nexus存储库复制到本地目录。从那里,您可以使用aws s3 sync
将其复制到一个或多个S3存储桶(并逐步进行同步)。
我想对于“原始”存储库来说,类似的事情也是可能的,因为它们与“将文件转储到Web服务器上”相距不远,但是您可以使用reposync
来代替需要类似wget --mirror
之类的东西。这对于某些其他存储库格式也可能适用,但是您需要让Nexus返回目录列表,而这通常似乎并没有。
您可能可以使用的另一个选项是从一个S3存储桶复制到另一个。这样,您只需要同步到一个存储桶,然后让AWS为您处理其余的工作。