DQI*_*DQI 17 amazon-s3 amazon-web-services aws-cli
我无法从AWS S3存储桶下载多个文件到本地计算机.
我有我要下载的所有文件名,我不想要其他人.我怎样才能做到这一点 ?在aws-cli中是否有任何类型的循环我可以进行一些迭代?
我需要下载几百个文件,因此似乎无法使用一个将所有文件名作为参数的命令.
小智 13
有一个bash脚本可以读取文件中的所有文件名filename.txt
.
#!/bin/bash
set -e
while read line
do
aws s3 cp s3://bucket-name/$line dest-path/
done <filename.txt
Run Code Online (Sandbox Code Playgroud)
您可能希望使用"sync"而不是"cp".以下内容将仅下载/同步本地文件夹中带有".txt"扩展名的文件:
aws s3 sync --exclude="*" --include="*.txt" s3://mybucket/mysubbucket .
Run Code Online (Sandbox Code Playgroud)
小智 7
根据文档,您还可以使用include
和进行exclude
过滤s3 cp
。因此,您可以执行以下操作:
aws s3 cp s3://bucket/folder/ . --recursive --exclude="*" --include="2017-12-20*"
Run Code Online (Sandbox Code Playgroud)
确保你得到的顺序exclude
和include
筛选权,可以改变整个含义。
尝试了以上所有方法。没有太多的喜悦。最后,将@rajan的回复改编成一句话:
for file in whatever*.txt; do { aws s3 cp $file s3://somewhere/in/my/bucket/; } done
Run Code Online (Sandbox Code Playgroud)
我想从文本文件中读取 s3 对象键并将它们并行下载到我的机器上。
我用了这个命令
cat <filename>.txt | parallel aws s3 cp {} <output_dir>
Run Code Online (Sandbox Code Playgroud)
我的文本文件的内容如下所示:
s3://bucket-name/file1.wav
s3://bucket-name/file2.wav
s3://bucket-name/file3.wav
Run Code Online (Sandbox Code Playgroud)
请确保文本文件末尾没有空行。您可以在此处了解有关 GNU 并行的更多信息
归档时间: |
|
查看次数: |
29149 次 |
最近记录: |