MS Graph API: копирование driveItem с использованием PostAsyn c не возвращает результат - PullRequest
0 голосов
/ 06 августа 2020

Я хочу скопировать файл из одной папки в библиотеке документов Sharepoint в другую папку в библиотеке.

Я использую

Task<DriveItem> copyDriveItemTask = _graphClient.Sites.Root.Lists[_nameOfDocLib].Drive.Root.ItemWithPath(_pathToItemLocation)
                                    .Copy(newName, parentReference).Request().PostAsync();
copyDriveItemTask.Wait();

После возврата copyDriveItemTask его результат нулевой! Попытки получить доступ к новому файлу не всегда работают. Я думаю, что копирование файла на данный момент не завершено. Если я пошагово прохожу в режиме отладки, он работает все время, давая серверу Sharepoint достаточно времени для выполнения своих действий копирования.

Согласно http-документации Graph.Api, вызов PostAsyn c должен возвращаться с ответ, содержащий ссылку для получения информации о ходе процесса копирования.

В документации c# такой результат отсутствует. PostAsyn c здесь вызывается простым await!

Согласно интерфейсу IDriveItemCopyRequest Graph.Api, PostAsyn c должен возвращать Task .

Я думаю, что c# Вызов PostAsyn c не дожидается полного копирования файла. Он возвращается немедленно, как описано для варианта http (отсутствует ссылка для получения информации о ходе выполнения). Но в настоящее время нет объекта DriveItem, который можно вернуть. Таким образом, в результате получается нулевой результат.

Правильно ли мое объяснение или нет, в варианте c# у меня нет шанса определить, завершился ли процесс копирования или нет.

Приветствуются лучшие объяснения, другая помощь или даже решение ...

Kalle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...