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

C#调用Google Drive API获取带resourcekey的文件/文件夹方法

关于C#调用Google Drive API访问带resourceKey资源的解决方案

你此前的代码失效是因为Google Drive API v3对共享类资源新增了resourceKey强制校验逻辑,你已经获取到对应资源的resourceKey后,只需在原有请求基础上新增resourceKey赋值即可正常操作:

  • 访问/获取带resourceKey的文件/文件夹
    直接给Files.Get请求实例的ResourceKey属性赋值你已拿到的对应资源的resourceKey,调整后的代码如下:
// 替换为你实际的文件ID、对应resourceKey
string fileId = "目标文件/文件夹ID";
string resourceKey = "已获取到的对应resourceKey";

var getRequest = DriveService.Files.Get(fileId);
// 新增resourceKey赋值行
getRequest.ResourceKey = resourceKey;
var targetFile = getRequest.Execute();
  • 复制带resourceKey的文件/文件夹
    复制操作同理,给Files.Copy请求实例的ResourceKey属性赋值源资源的resourceKey即可,示例代码如下:
// 替换为实际的源文件ID、对应resourceKey、目标配置
string sourceFileId = "待复制的源文件/文件夹ID";
string sourceResourceKey = "源资源对应的resourceKey";

// 配置复制后的目标文件元数据,可按需修改名称、指定父文件夹等
var targetFileMeta = new Google.Apis.Drive.v3.Data.File
{
    Name = "复制后的文件名称",
    Parents = new List<string> { "目标父文件夹ID" }
};

var copyRequest = DriveService.Files.Copy(targetFileMeta, sourceFileId);
// 赋值源资源的resourceKey
copyRequest.ResourceKey = sourceResourceKey;
var copiedResult = copyRequest.Execute();

如果你需要批量操作多个带resourceKey的资源,也可以统一在请求头中添加X-Goog-Drive-Resource-Keys参数,参数值格式为资源ID1/resourceKey1,资源ID2/resourceKey2,单资源操作直接给请求对象的ResourceKey属性赋值即可,逻辑更清晰不易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:36:03