Чтобы загрузить файл в OneDrive с помощью API Graph на C#, можно использовать несколько методов. Вот несколько вариантов:
- Используйте Microsoft Graph SDK для.NET: Microsoft предоставляет официальный SDK под названием Microsoft.Graph для работы с Microsoft Graph API. Вы можете установить пакет через NuGet и использовать его методы для загрузки файла в OneDrive. Вот пример фрагмента кода:
using Microsoft.Graph;
...
GraphServiceClient graphClient = new GraphServiceClient("YOUR_ACCESS_TOKEN");
// Define the upload parameters
var uploadStream = new System.IO.MemoryStream();
var uploadItem = new DriveItemUploadableProperties
{
ODataType = "#microsoft.graph.driveItemUploadableProperties",
Name = "example.txt",
Content = uploadStream
};
// Upload the file
var uploadedFile = await graphClient.Me.Drive.Root
.ItemWithPath("/path/to/destination/example.txt")
.Content.Request()
.PutAsync<DriveItem>(uploadItem);
- Используйте класс HttpClient. Вы также можете использовать класс HttpClient в C# для отправки HTTP-запросов непосредственно к конечной точке API Graph. Вот пример фрагмента кода:
using System.Net.Http;
using System.Net.Http.Headers;
...
string accessToken = "YOUR_ACCESS_TOKEN";
string filePath = "example.txt";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
using (var stream = new FileStream(filePath, FileMode.Open))
{
var requestUrl = "https://graph.microsoft.com/v1.0/me/drive/root:/path/to/destination/example.txt:/content";
var content = new StreamContent(stream);
var response = await client.PutAsync(requestUrl, content);
response.EnsureSuccessStatusCode();
}
}
Это всего лишь пара примеров, но есть и другие подходы, которые вы можете использовать в зависимости от ваших конкретных требований. Не забудьте заменить YOUR_ACCESS_TOKEN фактическим токеном доступа, полученным в процессе аутентификации.