You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用aws-cli按特定文件名筛选从S3下载文件的方法

问题

我的S3存储桶里有这样的文件结构:

s3://bucket/folder1/folder11/mylog.log
s3://bucket/folder1/folder12/mylog.log
s3://bucket/folder2/folder21/folder211/mylog.log
s3://bucket/folder3/folder31/mylog.log
s3://bucket/folder4/mylog.log
....

想下载所有名为mylog.log的文件,该怎么做?

解决方案

分享两种实用的批量下载方法,均通过AWS CLI操作:

方法一:用s3 sync配合过滤规则

这是最简洁的方式,通过筛选规则精准匹配目标文件:

aws s3 sync s3://bucket ./your-local-folder \
    --exclude "*" \
    --include "*/mylog.log"
  • 说明:先通过--exclude "*"排除所有文件,再用--include "*/mylog.log"选中所有层级路径下的mylog.log,最后同步到本地的your-local-folder目录(替换为你实际要存储文件的本地路径)。

方法二:先查找文件路径再批量下载

如果需要先确认要下载的文件列表,这种分步方式更直观:

aws s3 ls s3://bucket --recursive | grep "mylog.log$" | awk '{print $4}' | xargs -I {} aws s3 cp s3://bucket/{} ./your-local-folder/
  • 说明:
    1. aws s3 ls ... --recursive递归列出存储桶内所有文件;
    2. grep "mylog.log$"筛选出文件名恰好为mylog.log的条目;
    3. awk '{print $4}'提取文件的相对路径;
    4. xargs ...将每个路径对应的文件下载到本地目录。

注意事项

  • 执行命令前需确保AWS CLI已配置好访问权限(运行aws configure完成配置);
  • 替换命令中的bucket为你的存储桶名称,your-local-folder为本地目标路径。

内容的提问来源于stack exchange,提问作者Tommy Yu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 01:11:03