我正在尝试通过AWS CLI创建一个命令,该命令将检查提供的存储桶是否存在以及存储桶中是否存在文件,然后在本地计算机中复制这些文件。
所以我的要求是:有一个s3桶'ecs-ref-arch',这个桶包含一个名为'jars'的文件夹。因此,如果存在/ ecs-ref-arch / jars并且此目录中有文件,那么我只想将所有文件从jars目录复制到本地计算机。
这可以在单个AWS CLI命令中完成吗?
答案 0 :(得分: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