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

使用Google Cloud SDK Shell从GCS下载数据失败,原命令突发报错求助

解决gsutil下载GCS目录时WinError 123的问题

问题根源

报错[WinError 123] 文件名、目录名或卷标语法不正确: C:\GCS\CBB_Cutler Server\E:',核心原因是GCS存储桶里的文件路径包含Windows驱动器前缀(比如E:\)。当gsutil递归下载时,会直接把这个前缀当作子目录名创建,但Windows不允许子目录名是E:这种驱动器号格式,所以触发语法错误。

排查与解决步骤

1. 确认GCS中的路径结构

执行以下命令,查看存储桶内的文件路径细节:

gsutil ls -r "gs://cloudberrybackup12febbf3-0864-42a2-bd04-2f8cbc97a94d/CBB_Cutler Server"

如果输出里出现类似gs://xxx/CBB_Cutler Server/E:/xxx/xxx.txt的路径,即可确认问题所在。

2. 两种可行解决办法

办法一:下载时替换非法路径(无需修改GCS内容)

用PowerShell遍历所有文件,自动替换路径中的驱动器前缀:

gsutil ls -r "gs://cloudberrybackup12febbf3-0864-42a2-bd04-2f8cbc97a94d/CBB_Cutler Server" | ForEach-Object {
    $gcsPath = $_
    # 将路径中的E:/替换为自定义合法目录名,比如Volume_E
    $localPath = $gcsPath -replace "gs://cloudberrybackup12febbf3-0864-42a2-bd04-2f8cbc97a94d/CBB_Cutler Server/E:/", "C:\GCS\CBB_Cutler Server\Volume_E\"
    gsutil cp $gcsPath $localPath
}

该脚本会逐个下载文件并修正本地路径,避免创建非法目录。

办法二:重命名GCS中的路径(需拥有修改权限)

如果有权限修改GCS存储内容,先批量重命名带驱动器号的路径:

gsutil mv "gs://cloudberrybackup12febbf3-0864-42a2-bd04-2f8cbc97a94d/CBB_Cutler Server/E:/*" "gs://cloudberrybackup12febbf3-0864-42a2-bd04-2f8cbc97a94d/CBB_Cutler Server/Volume_E/*"

重命名完成后,使用修正后的标准命令下载(注意将原命令中的全角–r替换为半角-r):

gsutil -m cp -r "gs://cloudberrybackup12febbf3-0864-42a2-bd04-2f8cbc97a94d/CBB_Cutler Server" "C:\GCS"

3. 额外注意

Windows文件路径不允许包含<, >, :, ", /, \, |, ?, *这些字符,若GCS中存在此类路径,下载时都会触发WinError 123,需提前处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 21:32:47