程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了aws s3 同步 - 如何在同步期间仅排除某些文件从 s3 中删除,即使它们不存在于本地大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决aws s3 同步 - 如何在同步期间仅排除某些文件从 s3 中删除,即使它们不存在于本地?

开发过程中遇到aws s3 同步 - 如何在同步期间仅排除某些文件从 s3 中删除,即使它们不存在于本地的问题如何解决?下面主要结合日常开发的经验,给出你关于aws s3 同步 - 如何在同步期间仅排除某些文件从 s3 中删除,即使它们不存在于本地的解决方法建议,希望对你解决aws s3 同步 - 如何在同步期间仅排除某些文件从 s3 中删除,即使它们不存在于本地有所启发或帮助;

情况如下:

我的本​​地存储库中有一个包含 5 个文件的文件夹: 文件夹/文件A 文件夹/文件B 文件夹/文件C 文件夹/文件D 文件夹/文件E

我在 s3 存储桶上有相同的 5 个文件:myBucketname。本地存储库和 aws s3 存储桶是同步的。我想要完成的是:

  1. 如果我手动将任何文件添加到 s3 存储桶而不是本地,我不希望在同步时从 S3 中删除此文件。

  2. 如果我从 S3 中删除任何文件,我不希望从本地删除该文件。

  3. 如果我将文件添加到本地存储库,我希望同步通过同步将文件添加到 S3。

  4. 如果我从本地存储库中删除一个文件,我希望它通过同步从 S3 中删除。

所以我现在将以下内容添加到 aws s3 myBucketname:

文件夹B/文件A 文件夹B/文件B 文件夹B/文件C 文件夹B/文件D 文件夹B/文件E

如果我现在进行同步,它会识别出文件夹 B/* 存在于 s3 上但不存在于本地,因此它会将其从 s3 中删除。我不想要这种行为。所以本质上我希望同步发生但忽略 folderB/*

的删除操作

有没有办法让我使用一个 aws s3 同步命令来完成所有 4 个场景?

目前这是我所拥有的:

aws s3 同步 localDirectory s3://myBucketname/
--删除
--排除“.*” \

我应该将其更改为什么来完成上述场景?

解决方法

要求 #1 和 #4 相互竞争。

aws s3 sync 命令不会保留文件的历史记录——它只能查看源和目标中的内容并做出决定。

在 #1 中,您希望添加到 S3(但不是本地)的文件保留而不删除。

但是,在 #4 中,您希望从本地删除的文件保留在 S3 中,而不是从 S3 中删除。

问题是 AWS CLI 看不到这两种情况的区别。它所看到的只是 S3 中有一个不在本地的文件。为了满足 #4,它需要 --delete 参数。但是,这也会删除 S3 中不在本地的任何对象,因为 AWS CLI 不知道文件是何时/何地创建的。它只是查看当前情况,并会删除目标中不在目标中的任何文件。

您需要提供另一种方法来确定要删除或不删除哪些文件,例如将它们放在不同的目录中并且不同步这些目录。

大佬总结

以上是大佬教程为你收集整理的aws s3 同步 - 如何在同步期间仅排除某些文件从 s3 中删除,即使它们不存在于本地全部内容,希望文章能够帮你解决aws s3 同步 - 如何在同步期间仅排除某些文件从 s3 中删除,即使它们不存在于本地所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。