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

使用Graph API和C#下载SharePoint文件的技术咨询

SharePoint文件下载相关问题解答

一、能否通过路径直接查询并下载文件?

可以直接通过Microsoft Graph API使用文件路径定位并下载,无需多次调用获取资源ID。具体请求端点格式如下:

GET https://graph.microsoft.com/v1.0/sites/my-host.sharepoint.com:/sites/ActiveSite/drive/root:/DocumentLibrary/ParentFolder/ImmediateFolder/Panda.jpg:/content

请求时在Header中携带你的Azure AD AccessToken,即可直接获取文件二进制内容完成下载。

二、PnP.Framework如何使用Azure AD应用注册调用SharePoint?

PnP.Framework支持Azure AD应用注册的客户端凭证流认证,并非只能依赖SharePoint内创建的ACS应用。你可以使用AuthenticationManager.GetAzureADAppOnlyAuthenticatedContext方法替代文档中的ACS方法,示例代码如下:

using PnP.Framework;

var siteUrl = "https://my-host.sharepoint.com/sites/ActiveSite";
var tenantId = "你的Azure AD租户ID";
var clientId = "你的Azure AD应用客户端ID";
var clientSecret = "你的Azure AD应用客户端密钥";

using var context = new AuthenticationManager().GetAzureADAppOnlyAuthenticatedContext(
    siteUrl,
    tenantId,
    clientId,
    clientSecret);

// 下载文件示例
context.Web.GetFileByServerRelativeUrl("/sites/ActiveSite/DocumentLibrary/ParentFolder/ImmediateFolder/Panda.jpg")
    .SaveAs("本地保存路径/Panda.jpg");

注意需确保Azure AD应用已授予对应的SharePoint权限(如Sites.Read.All)。

三、若必须使用ID查询,如何获取并保存资源ID?

如果需要获取站点、文档库、文件夹或文件的ID,可通过以下步骤调用Microsoft Graph API获取:

  1. 获取站点ID

    GET https://graph.microsoft.com/v1.0/sites/my-host.sharepoint.com:/sites/ActiveSite
    

    响应中的id字段即为站点ID。

  2. 获取文档库ID
    使用站点ID调用:

    GET https://graph.microsoft.com/v1.0/sites/{站点ID}/drives
    

    在响应列表中找到名称为DocumentLibrary的项,其id字段即为文档库ID。

  3. 获取文件夹ID
    使用站点ID调用:

    GET https://graph.microsoft.com/v1.0/sites/{站点ID}/drive/root:/DocumentLibrary/ParentFolder/ImmediateFolder
    

    响应中的id字段即为文件夹ID。

  4. 获取文件ID
    使用站点ID调用:

    GET https://graph.microsoft.com/v1.0/sites/{站点ID}/drive/root:/DocumentLibrary/ParentFolder/ImmediateFolder/Panda.jpg
    

    响应中的id字段即为文件ID。

获取到这些ID后,可将其保存到应用配置文件(如.NET中的appsettings.json),后续直接从配置中读取ID进行API调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:18:43