Добавить новый файл Microsoft.OneDrive.Sdk.Item - настройка содержимого - PullRequest
0 голосов
/ 28 июня 2019

Я использую Microsoft.OneDrive.Sdk в приложении UWP.

У меня есть базовые настройки и работа: я могу подключиться к OneDrive, аутентифицироваться и выполнять основные операции с Элементами, например, перечислятьСодержимое элемента (папки) и добавление новых элементов (папок).

Но я не могу добавить новый элемент (файл):

  • Чтобы добавить элемент, который вынеобходимо указать фасет (файл, папка, пакет и т. д.).

  • Чтобы указать элемент файла, необходимо указать содержимое файлов, в противном случае вы получите:

    Невозможно создать файл без содержимого.BadRequest.Было сгенерировано исключение типа «Microsoft.Graph.ServiceException».

  • Если я попытаюсь установить File.Content с помощью потока, я получу:

    Ошибка получения значения из ReadTimeout в System.IO.BufferedStream.at Newtonsoft.Json.Serialization.ExpressionValueProvider.GetValue (Цель объекта)

Я пробовал два варианта (текст из строковой переменной и содержимое текстового файла),оба возвращают одну и ту же ошибку (ошибка получения ReadTimeout в потоке):

Item newPlayListItem = new Item();
newPlayListItem.Name = playlistFileName;
newPlayListItem.File = new Microsoft.OneDrive.Sdk.File();
using (System.IO.MemoryStream stream = new System.IO.MemoryStream(Encoding.UTF8.GetBytes(myStringVariable), true))
{
  newPlayListItem.Content = stream;
}

И альтернативно:

Item newPlayListItem = new Item();
newPlayListItem.Name = playlistFileName;
newPlayListItem.File = new Microsoft.OneDrive.Sdk.File();
var randomAccessStream = await myStorageFile.OpenReadAsync();
System.IO.Stream stream = randomAccessStream.AsStreamForRead();
newPlayListItem.Content = stream;

Есть идеи?

...