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

如何使用gsutil下载GCS存储桶中指定日期范围内的文件

GCS存储桶按日期范围筛选下载文件的方案

方法1:使用gsutil工具直接筛选(推荐)

gsutil 原生支持按对象生成时间过滤,无需额外编写脚本,适合绝大多数场景:

  • 下载指定日期之后创建的所有文件示例:
    示例场景:下载UTC时间2024年3月1日0点之后创建的所有文件,存储桶路径为gs://<你的存储桶名称>/<可选前缀>/,本地保存路径为./local_dir/
    执行命令:
    gsutil -m cp -r --include-if-generated-after 2024-03-01T00:00:00Z gs://<你的存储桶名称>/<可选前缀>/* ./local_dir/
    参数说明:
    • -m:开启多线程并行传输,大幅提升数千个文件的下载速度
    • --include-if-generated-after:仅下载生成时间晚于指定UTC时间的文件,时间需遵循ISO 8601格式,若使用北京时间筛选,需先将目标时间减8小时转换为UTC时间
  • 下载指定日期区间内创建的所有文件示例:
    示例场景:下载UTC时间2024年3月1日0点到2024年3月15日23点59分59秒之间创建的文件
    执行命令:
    gsutil -m cp -r --include-if-generated-after 2024-03-01T00:00:00Z --include-if-generated-before 2024-03-15T23:59:59Z gs://<你的存储桶名称>/<可选前缀>/* ./local_dir/

方法2:旧版gsutil适配方案

若你使用的gsutil版本过低不支持上述过滤参数,可以通过列出文件后二次筛选的方式实现:

  1. 先导出存储桶内所有文件的生成时间与路径到临时文件
    gsutil ls -l gs://<你的存储桶名称>/<可选前缀>/ | grep -v "^TOTAL" | awk '{print $1,$3}' > gcs_file_list.txt
  2. 筛选符合日期要求的文件并下载,以下示例筛选2024年3月1日之后创建的文件
    cat gcs_file_list.txt | while read -r gen_time file_path; do if [[ $gen_time > "2024-03-01" ]]; then gsutil cp $file_path ./local_dir/; fi done

注意:该方案仅适合文件名不含特殊字符、空格的场景,若文件名存在特殊格式需调整awk和循环部分的解析逻辑。


内容的提问来源于stack exchange,提问作者A. K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:06:09