gpt4 book ai didi

c# - 将文件上传到 Sharepoint 在线图书馆

转载 作者:行者123 更新时间:2023-12-01 21:59:22 25 4
gpt4 key购买 nike

我正在尝试使用 C# 图形 sdk 将文件上传到 Sharepoint 在线文档库,但失败了。

我可以获取驱动器/库,但如果我将其作为驱动器获取,则根为空,并且出现异常。如果我将其作为列表处理,我似乎无法使用 CreateUploadSession 方法。

以列表形式获取文档库:

await graphClient.Sites[SPUrl + ":"].Sites[SpPath + ":"].Lists[libId].Request().GetAsync();

通过驱动器 ID 将文档库获取为驱动器似乎不起作用:

var drive = await graphClient.Sites[SPUrl + ":"].Sites[SpPath + ":"].Drives[driveId].Request().GetAsync();

将文档库作为其列表的驱动器获取:

var drive = await graphClient.Sites[SPUrl + ":"].Sites[SpPath + ":"].Lists[libId].Drive.Request().GetAsync();

但尝试获取该云端硬盘的根目录会导致“错误请求:指定的 URL 无效”。尝试 Drive.Items.Request() 也是如此。但据我所知,我需要拥有驱动器的根目录才能执行此操作:

var uploadSession = await graphClient.Sites[SPUrl + ":"].Sites[SpPath + ":"].Lists[libId].Drive.Root.ItemWithPath(file.FileName).CreateUploadSession().Request().PostAsync();

但是我有三个文档库,它们都将 Root 显示为空。显然我错过了一些东西,但我不清楚是什么。

最佳答案

确实,如果网站是 addressed by server-relative URL ,以下查询

GET https://graph.microsoft.com/v1.0/sites/{hostname}:/{server-relative-path}:/drive

成功并返回默认驱动器,同时显示以下内容:

GET https://graph.microsoft.com/v1.0/sites/{hostname}:/{server-relative-path}:/drive/root

失败并返回错误指定的 URL 无效。

这似乎是 Microsoft Graph 本身的一个错误。无论如何,可以考虑以下选项将文件上传到库中。

It is assumed siteUrl corresponds to site server relative url and listId to library unique identifier

它由以下步骤组成:

  • 通过服务器相对 URL 解析站点
  • 访问库的根文件夹
  • 上传文件

示例

//1.resolve site by server relative url
var targetSite = await graphClient.Sites.GetByPath(siteUrl,hostName).Request().GetAsync(); //2.access root folder for for a Library
var targetFolder = graphClient.Sites[targetSite.Id]
.Lists[listId]
.Drive
.Root;

//3.Upload a file
var pathToFile = @"c:\Temp\Guide.docx";
using (var fileStream = new FileStream(pathToFile, FileMode.Open, FileAccess.Read))
{
var uploadedItem = await targetFolder
.ItemWithPath("Guide.docx")
.Content
.Request()
.PutAsync<DriveItem>(fileStream);
}

哪里

  • hostName 是网站集主机名(例如contoso.sharepoint.com)
  • siteUrl - 服务器相对站点 URL,例如/sites/management

关于c# - 将文件上传到 Sharepoint 在线图书馆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54262319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com