You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用gsutil向Google Cloud Storage上传大文件夹遇故障,求解决思路

解决Windows下gsutil上传带空格文件夹到Google Cloud Storage的问题

我之前在Windows虚拟机上用gsutil传带空格的文件夹时也踩过一模一样的坑,给你梳理下问题出在哪以及怎么解决:

先分析你遇到的两个错误

  1. 第一个命令 gsutil cp C:\Folder\Sub folder - name gs://bucketname/
    Windows命令行里,空格会被当成参数分隔符,所以系统会把Subfolder-name当成独立的参数,gsutil自然找不到C:\Folder这个路径(你实际要指定的是完整的C:\Folder\Sub folder - name文件夹)。

  2. 第二个命令 gsutil cp C:"Folder\Sub folder - name" gs://bucketname/
    你只给路径的后半部分加了引号,Windows命令行无法正确解析这种不完整的带引号路径,导致整个路径识别错误,进而把后面的gs://bucketname/当成了不符合要求的参数,才会出现“unrecognised scheme name gs”的报错。

正确的上传命令

要解决这个问题,你需要做到两点:

  • 整个完整的本地文件夹路径用双引号括起来,让命令行把它当成一个完整的参数
  • 上传文件夹必须加上-r参数,告诉gsutil要递归上传文件夹里的所有内容(否则gsutil会把文件夹当成单个文件处理,直接报错)

正确的命令应该是这样的:

gsutil cp -r "C:\Folder\Sub folder - name" gs://bucketname/

额外的优化和检查建议

  • 如果你的文件夹特别大,建议加上-m参数启用并行上传,能大幅提升上传速度:
    gsutil -m cp -r "C:\Folder\Sub folder - name" gs://bucketname/
    
  • 先确认本地路径是否正确:可以在命令行里输入 dir "C:\Folder\Sub folder - name",如果能正常列出文件夹里的内容,说明路径没问题
  • 确认gsutil已经完成身份验证:可以运行gsutil ls gs://bucketname/测试,如果能列出存储桶里的内容,说明权限配置正常

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

火山引擎 最新活动