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

如何从Google Cloud Storage批量下载文件并存入独立文件夹

批量下载GCS文件并分别存入独立文件夹

不管是gsutil -m cp还是gcloud storage cp,都没有直接的内置参数实现“每个文件自动存入独立文件夹”,但通过简单的Bash循环就能轻松实现需求,以下是具体方案:

方法一:使用 gsutil -m cp

  1. 先把筛选好的所有GCS文件路径整理到一个文本文件(比如gcs_files.txt),每行一个路径:
    gs://your-bucket/path/file1.dat
    gs://your-bucket/path/file2.log
    gs://your-bucket/path/subdir/file3.csv
    
  2. 执行以下Bash循环脚本,会为每个文件创建以**文件名(去掉后缀)**命名的文件夹,并将文件下载进去:
    while read -r gcs_path; do
      # 提取文件名(如file1.dat)
      filename=$(basename "$gcs_path")
      # 生成文件夹名(去掉后缀,如file1)
      folder_name="${filename%.*}"
      # 创建文件夹(-p确保父目录不存在时也能创建)
      mkdir -p "$folder_name"
      # 并行下载文件到目标文件夹
      gsutil -m cp "$gcs_path" "$folder_name/"
    done < gcs_files.txt
    

方法二:使用 gcloud storage cp

gcloud storage cp和gsutil cp用法高度兼容,同样可以用循环实现,仅需替换下载命令:

while read -r gcs_path; do
  filename=$(basename "$gcs_path")
  folder_name="${filename%.*}"
  mkdir -p "$folder_name"
  # gcloud storage cp 默认支持并行,也可加--parallel-threads调整线程数
  gcloud storage cp "$gcs_path" "$folder_name/"
done < gcs_files.txt

自定义文件夹名称

如果不想用文件名生成文件夹,可修改文本文件为“GCS路径 自定义文件夹名”的格式(每行两列):

gs://your-bucket/path/file1.dat  sample-data-1
gs://your-bucket/path/file2.log  log-archive-2

然后调整循环脚本:

while read -r gcs_path folder_name; do
  mkdir -p "$folder_name"
  gsutil -m cp "$gcs_path" "$folder_name/"
  # 或用gcloud命令:gcloud storage cp "$gcs_path" "$folder_name/"
done < gcs_files.txt

内容的提问来源于stack exchange,提问作者Pratiksha Pradhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:17:12