繁体   English   中英

仅在存储桶存在时才从AWS S3存储桶复制文件

[英]Copy files from AWS S3 Bucket only if the bucket exists

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

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

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

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

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

对于单个命令,我不确定,我是xargs忠实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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM