使用 C# 和 .NET 5.0 将大文件上传到 onedrive

问题描述 投票:0回答:1

我需要将一个大文件(约 2 GB)上传到 Microsoft OneDrive 企业帐户。我在网上查找了一些指南,但找不到答案。我看到 Microsoft Graph 存在(在 nuget 版本 5.48.0 上),但我不知道如何使用它以及是否可以使用此 nuget 扩展。

我还需要一个可以继续和/或指导的示例。

我没有代码可显示,因为我从本地 csv 开始,应该将其发送到 OneDrive。

我使用在 .NET 5.0 上运行的用 C# 编写的控制台应用程序。

提前感谢您的帮助

问候。

static async Task Main(string[] args)
{
    // Replace with the path to your large CSV file
    var filePath = @"C:\test\test.csv";
}
c# .net-core file-upload console-application onedrive
1个回答
0
投票

我们这里有一个示例,它已经向我们展示了如何上传大文件。你可以自己尝试一下,它使用了Graph SDK,这也符合你在问题中关心的问题,但请注意这一行。

var myDrive = await graphClient.Me.Drive.GetAsync();

示例未向您展示如何初始化

graphClient
。如果你坚持开发控制台应用程序,那么就不可能有一个允许用户登录的 UI,那么就不可能编写像带有
graphClient.Me
的示例那样的代码。没有登录,无法知道我是谁,那就只能尝试下面的代码来初始化了
graphClient

var scopes = new[] { "https://graph.microsoft.com/.default" };
 var tenantId = "tenantId";
 var clientId = "clientId";
 var clientSecret = "clientSecret";
 var clientSecretCredential = new ClientSecretCredential(
                 tenantId, clientId, clientSecret);
 var graphClient = new GraphServiceClient(clientSecretCredential, scopes);

该代码片段基于 Azure AD 客户端凭据流,使用应用程序类型的 API 权限。按照本节创建 Azure AD 应用程序。在

Overview
刀片中获取客户端 ID,并在
Certificates and secrets
刀片中创建并获取客户端密钥。然后在 Api 权限边栏选项卡中,添加应用程序类型
Files.ReadWrite.All
。请不要忘记授予管理员同意。然后你可以在你的应用程序中使用代码尝试
var myDrive = await graphClient.Users["user_id"].Drive.GetAsync();

© www.soinside.com 2019 - 2024. All rights reserved.