【问题标题】:Copy files from AWS S3 Bucket only if the bucket exists仅当存储桶存在时才从 AWS S3 存储桶复制文件
【发布时间】:2018-01-01 09:25:33
【问题描述】:

我正在尝试通过 AWS CLI 创建一个命令,该命令将检查提供的存储桶是否存在以及存储桶中是否存在文件,然后将这些文件复制到本地计算机中。

所以我的要求是:有一个 s3 存储桶“ecs-ref-arch”,这个存储桶包含一个名为“jars”的文件夹。因此,如果 /ecs-ref-arch/jars 存在并且此目录中有文件,那么我只想将所有文件从 jars 目录复制到我的本地机器。

这可以在单个 AWS CLI 命令中完成吗?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-cli


    【解决方案1】:

    这可以在单个 AWS CLI 命令中完成吗?

    首先,这听起来很像“为我做这项工作”,您没有从您的角度进行大量研究,尽管您可能已经搜索过,但不清楚您在哪里挣扎。

    关于单个命令我不确定,我是xargs 等的忠实粉丝,但我认为您至少需要2 个命令。 AWS 提供了一些方法来检查存储桶 (aws s3api head-bucket --bucket <bucket_name>) 是否存在,但不方便搜索 文件夹

    所以最好是在脚本中检查它并从那里运行所有命令,这样的脚本可以写成

    #!/bin/bash
    
    CMD="aws s3 ls s3://<bucket-name>"
    
    if eval "$CMD" | grep -q 'PRE jars/'; then
      # jars folder is found, can copy files locally
      aws s3 sync s3://<bucket-name>/jars .
    fi
    

    【讨论】:

      猜你喜欢
      • 2017-11-23
      • 2019-08-07
      • 1970-01-01
      • 2022-01-11
      • 2018-06-18
      • 1970-01-01
      • 2022-01-07
      • 2020-06-15
      • 1970-01-01
      相关资源
      最近更新 更多