Amazon web services 仅当存在AWS S3存储桶时,才从该存储桶复制文件

Amazon web services 仅当存在AWS S3存储桶时,才从该存储桶复制文件,amazon-web-services,amazon-s3,aws-cli,Amazon Web Services,Amazon S3,Aws Cli,我试图通过AWS CLI创建一个命令,该命令将检查提供的bucket是否存在,以及bucket中是否存在文件,然后将这些文件复制到本地计算机中 所以我的要求是:有一个s3 bucket“ecs ref arch”,这个bucket包含一个名为“jars”的文件夹。因此,如果存在/ecs ref arch/jars,并且该目录中有文件,那么只有我想将所有文件从jars目录复制到本地计算机 这可以在单个AWS CLI命令中完成吗 这可以在单个AWS CLI命令中完成吗 首先,这听起来很像“为我做这项

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

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

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

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

首先,这听起来很像“为我做这项工作”,你没有从你这边展示很多研究,虽然你可能已经搜索过了,但不清楚你在哪里挣扎

关于单个命令,我不确定,我非常喜欢
xargs
等等,但我认为您至少需要两个命令。AWS提供了一些方法来检查bucket的存在性(
AWS s3api head bucket--bucket
),但搜索文件夹并不方便

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

#!/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
#/bin/bash
CMD=“aws s3 ls s3://”
如果eval“$CMD”| grep-q“PRE-jars/”;然后
#找到jars文件夹后,可以在本地复制文件
aws s3同步s3:///jars。
fi