使用Graph API上传OneDrive文件时如何添加文件描述?
给OneDrive上传文件添加描述的实现方法
没问题,给上传到OneDrive的文件添加描述是完全可行的!我经常用Graph API处理OneDrive文件操作,这个需求很常见,Graph API的DriveItem资源本身就支持description这个可写属性,你可以通过两种方式实现:
方式一:上传文件后更新描述
如果你已经像示例中那样完成了文件上传,只需要在上传后调用PatchAsync方法更新文件的属性即可:
// 初始化Graph客户端(和你已有的代码一致) GraphServiceClient graphClient = new GraphServiceClient(authProvider); // 1. 先完成文件上传(你的原有代码,这里修正了stream的正确初始化方式) var stream = new MemoryStream(Encoding.UTF8.GetBytes("The contents of the file goes here.")); await graphClient.Me.Drive.Items["{item-id}"] .Request() .PutAsync(stream); // 2. 构造要更新的DriveItem对象,仅设置Description字段 var updateItem = new DriveItem { Description = "这里填写你的文件描述内容,比如:2024年Q2项目需求文档备份" }; // 3. 调用Patch接口更新文件属性 await graphClient.Me.Drive.Items["{item-id}"] .Request() .PatchAsync(updateItem);
方式二:上传新文件时直接设置描述
如果是创建新文件(而非覆盖已有文件),你可以在上传时就指定描述,一步到位:
GraphServiceClient graphClient = new GraphServiceClient(authProvider); var stream = new MemoryStream(Encoding.UTF8.GetBytes("The contents of the file goes here.")); // 构造包含描述的DriveItem对象 var newDriveItem = new DriveItem { Name = "my-new-file.txt", Description = "这是我刚上传的项目配置文件,用于测试环境部署" }; // 上传文件并同时设置描述 await graphClient.Me.Drive.Root.ItemWithPath("my-new-file.txt") .Request() .PutAsync(stream, newDriveItem);
小提示
- 记得替换代码中的
{item-id}为你实际的文件ID,创建新文件时用ItemWithPath指定目标路径即可 description字段支持普通文本,长度限制在1024字符以内- 调用
PatchAsync时只需要传入要更新的字段,不需要传整个DriveItem对象,这样请求更高效
内容的提问来源于stack exchange,提问作者Ask Too Much
相关产品推荐
相关产品推荐

