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

gsutil连接本地storage-testbench执行cp命令报错如何解决

问题根因

gsutil不同子命令的-p参数语义完全不同:

  • 对mb(创建存储桶)子命令而言,-p用于指定操作所属的项目ID,必须后接项目名作为参数值,因此mb -p test gs://bucket-name可以正常执行
  • 对cp(文件复制)子命令而言,-p是不需要传值的开关参数,作用是保留源文件的访问控制列表、时间戳等元数据。cp -p后跟随的test会被gsutil识别为待上传的本地文件路径,本地不存在名为test的文件时,就会抛出CommandException: No URLs matched: test报错。
修复方案

直接删除cp命令中多余的-p test参数即可。存储桶创建完成后,桶内的对象上传、下载等操作不需要额外指定项目ID,会自动归属到存储桶所属的项目下。
单文件上传的正确命令:

gsutil \
  -o "Credentials:gs_json_host=127.0.0.1" \
  -o "Credentials:gs_json_port=9000" \
  -o "Boto:https_validate_certificates=False" \
    cp -p my-file.ext gs://bucket-name/my-file.ext

如果需要批量上传3个本地文件,直接将所有待上传文件的本地路径依次列在目标存储桶路径前即可:

gsutil \
  -o "Credentials:gs_json_host=127.0.0.1" \
  -o "Credentials:gs_json_port=9000" \
  -o "Boto:https_validate_certificates=False" \
    cp -p file1.ext file2.ext file3.ext gs://bucket-name/
补充说明

storage-testbench文档中出现的test是项目ID的占位示例,仅适用于创建存储桶这类项目级操作,文件上传类对象操作不需要传入该参数。
后端日志显示第一个GET请求返回200属于正常现象:该请求是gsutil启动时校验服务连通性、拉取服务根配置的常规请求,报错发生在gsutil本地参数解析阶段,此时还未发起文件上传相关的请求,和服务端逻辑无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 01:12:27