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

使用C# RestSharp上传文件至GCS报‘必须指定对象名’错误排查

问题排查与解决方案

你的代码触发you must specify an object name错误的核心原因有两个:


1. 查询参数传递方式错误

GCS媒体上传接口要求name和uploadType作为URL查询参数传递,但你用的request.AddParameter在POST请求中默认会把参数放入请求体而非URL;同时你手动在URL末尾加的?会干扰RestSharp的参数拼接逻辑,导致name参数没被正确识别。

2. 缺少上传的CSV内容

就算修复参数问题,你的代码也没把CSV文件内容加入请求体,后续仍会因上传内容缺失报错。


修正后的代码

var client = new RestClient("https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o");
client.Timeout = -1;
var request = new RestRequest(Method.POST);

// 明确将参数添加为URL查询字符串
request.AddQueryParameter("uploadType", "media");
request.AddQueryParameter("name", "Products.csv");

request.AddHeader("Authorization", $"Bearer {_accessToken}");
request.AddHeader("Content-Type", "text/csv");

// 添加CSV文件内容(二选一即可)
// 方式1:直接从本地文件读取上传
request.AddFile("file", "本地文件路径/Products.csv", "text/csv");

// 方式2:传入已读取的字节数组
// byte[] csvContent = File.ReadAllBytes("本地文件路径/Products.csv");
// request.AddParameter("text/csv", csvContent, ParameterType.RequestBody);

关键说明

  • 移除URL末尾的?,RestSharp会自动处理查询参数的拼接
  • 用AddQueryParameter确保参数被放到URL中,符合GCS接口要求
  • 必须添加CSV内容到请求体,否则上传会失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:55:05