【问题标题】:aws s3 cp: don't copy if file is already thereaws s3 cp:如果文​​件已经存在,则不要复制
【发布时间】:2018-06-29 15:28:35
【问题描述】:

将文件从一个存储桶复制到另一个存储桶有两个要求:

  1. 逻辑:将网站重定向从源文件复制到每个文件的目标文件。 (如果 s3://bucket-src/x.txt 有网站重定向 /foo.txt 并且 s3://bucket-src/y.txt 有网站重定向 /bar.txt,那么最终结果是 s3://bucket -dest/x.txt 有网站重定向 /foo.txt 和 s3://bucket-dest/y.txt 有网站重定向 /bar.txt)

  2. 性能:如果具有相同数据的文件已经在目标存储桶中,则不要对该文件执行任何操作。

cp 满足要求 1。sync 满足要求 2。有没有办法从 sync 获得要求 1 或从 cp 获得要求 2?

【问题讨论】:

  • 您能否详细说明要求 1 是什么?在这种情况下“复制网站重定向”是什么意思?我不清楚你在说cp 命令可以做什么,sync 命令不会做什么。
  • 根据@MarkB 的评论,同步应该满足这两个要求。递归地将新的和更新的文件从源目录复制到目标。来自:docs.aws.amazon.com/cli/latest/reference/s3/sync.html
  • 我已经更新了我的问题以详细说明 req 1。

标签: amazon-web-services amazon-s3


【解决方案1】:

我认为答案是:不,没有专门执行此操作的命令。您要么必须在上传之前重命名本地文件,要么单独处理每个文件。

您可以获取远程文件的 md5 并将其与本地 md5 进行比较,如果它们不匹配您执行cp 命令。

您还可以执行递归ls 并比较文件大小并使用--include 开关来处理要同步的文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-07
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 2021-08-01
    相关资源
    最近更新 更多