我在s3存储桶上有一个名为all-files
的文件夹,其中包含35K个文件。我有一个CSV文件(errors.csv),其文件名为1K,此文件名是35K文件名的子集。我需要将35k all-files
文件夹中的1k文件(来自csv)复制到同一存储桶上的某个名为errors
的新文件夹中。
反正有可能吗?如果是,怎么办?
我用cp
模式用include
命令尝试了东西,但似乎不支持csv文件的输入。
由于您不确定是否使用Linux,所以我假设使用Linux。
bash
中最基本的实现方式如下(您未提供任何示例文件内容可使用):
# populate example `/tmp/files.csv` file:
cat >/tmp/files.csv << EOF
file1
file2
file3
EOF
从/tmp/files.csv
中读取逐行并执行aws s3 mv
:
while read file; do
echo "aws s3 mv s3://<bucket>/${file} s3://<otherbucket>/${file}"
done < /tmp/files.csv
这导致:
aws s3 mv s3://<bucket>/file1 s3://<otherbucket>/file1
aws s3 mv s3://<bucket>/file2 s3://<otherbucket>/file2
aws s3 mv s3://<bucket>/file3 s3://<otherbucket>/file3
更复杂的示例,将涉及通过同时移动几个文件来运行命令[[并发]]。但是,无论您同时移动10个文件还是一次移动10个文件,想法都是相同的。