升级Microsoft Graph 5.0后,SharePoint文件上传代码的修改需求
针对你升级到Microsoft Graph 5.0和.NET7后的SharePoint文件上传代码,需要做以下几处关键修改:
- 移除
.Request()调用:Graph 5.x版本重构了API调用逻辑,所有操作不再需要显式调用.Request()方法,直接链式调用后续操作即可。 - 删除冗余的内存拷贝代码:原代码中创建
buf2并读取流内容的逻辑完全多余,既浪费内存又影响性能,直接删除。 - 简化资源释放逻辑:
using语句会自动释放MemoryStream资源,无需手动调用ms.Dispose();,删掉该行代码。 - 调整异步方法调用:保留泛型声明
.PutAsync<DriveItem>(ms)即可,但要去掉前面的.Request()前缀。
修改后的完整代码如下:
public async Task<string> SharePointUploadFileAsync( string site, string libraryId, IFormFile file, string fileName) { string newFileId = string.Empty; var targetFolder = graphClient.Sites[site] .Lists[libraryId] .Drive.Root; using (var ms = new MemoryStream()) { await file.CopyToAsync(ms); ms.Seek(0, SeekOrigin.Begin); var uploadedItem = await targetFolder .ItemWithPath(fileName) .Content .PutAsync<DriveItem>(ms); newFileId = uploadedItem.Id; } return newFileId; }
额外注意:确保项目已正确安装Microsoft Graph 5.x版本的NuGet包,并引用了using Microsoft.Graph;命名空间。
内容的提问来源于stack exchange,提问作者Rubeesh
相关产品推荐
相关产品推荐

