2016-12-09 1 views
2

Мы получаем много файлов, не найденных ошибок. При вызове API у нас есть небольшая вероятность получить файл. У нас эта проблема в производстве, и это влияет на клиентов. Это началось вчера. Мы называем этот api месяцами без проблем. Это API, который мы используем.OneDrive API - Получение файла не найдено в большинстве случаев при попытке получить содержимое файла

https://TENANT-my.sharepoint.com/_api/v2.0/drives/DRIVE_ID/items/FILE_ID/content

Используя Почтальон, ответ ниже. Этот документ разделяется должным образом и длится несколько месяцев. На нашей стороне ничего не изменилось.

Извините, что-то пошло не так К сожалению, у вас нет доступа к этому документу. Пожалуйста, свяжитесь с человеком, который поделился им с вами. Technical Details

Устранение неполадок с Microsoft SharePoint Foundation. Корреляция ID: fb6bbf9d-d0d6-2000-cdd6-ef99686d513f

Дата и время: 12/9/2016 9:13:02 AM

ответ

2

Хотя это не объясняет, как и почему API сломал, так как это письмо, OneDrive не признал ни исправил оригинальный вопрос, наше решение было использовать значение из @contentDownloadUrl из метафайла файла и сделать вызов этого URL-адреса без заголовка авторизации.

Документов в настоящее время состояние:

«предварительная аутентификация загрузки URL-адрес действителен только в течение короткого периода времени (несколько минут) и не требует заголовка авторизации для загрузки.»

Это не должно говорить «не нужно», но «не должно включать», поскольку это было бы более ясно. Я сделал запрос на перенос в свои документы.

+0

Спасибо за исследование здесь @Burnsy и @JEBoothjr, я вижу несколько других сообщений о подобных проблемах в последнее время. Я расскажу о том, когда будет создан заголовок 'Authorization'. – Brad

+0

У меня была такая же проблема, и я открыл проблему с github - https://github.com/OneDrive/onedrive-api-docs/issues/485 –

+0

Действительно ли это то, что мы должны делать, сделать проблему в документах, если есть проблема с самим API? Если да, я это сделаю. – JEBoothjr

0

Мы имеем ту же проблему, используя C#/NET SDK с ItemNotFound. ошибка и «Microsoft.Graph.ServiceException». Это началось после того, как MS сделала обновление до OneDrive 12/7. Мы открыли билет поддержки с командой O365/OneDrive. Они сказали, что не знают о каких-либо проблемах, связанных с развертыванием, и сказали, что нам нужно связаться с поддержкой API. Странно, что это работает иногда, возможно, 2 из 100 попыток. Файлы листинга и загрузка по-прежнему работают, но загрузка не выполняется.

Вот то, что мы пытались до сих пор:

  • Последний пример проекта из GitHub, та же ошибка
  • Проверьте настройки в SharePoint для новых параметров, которые могут повлиять на это, никто не нашел
  • перерегистрировать App в Azure AD
  • Повышена разрешений приложения в Azure AD

строка кода, который не является:

var stream = ожидание this.oneDriveClient.Drive.Items [item.Id] .Content.Request(). GetAsync();

+0

Мы используем API REST, и мы испытываем аналогичные показатели успеха. Мы также пробовали модифицированные версии вызова и до сих пор не добились успеха.Как получить контакт с поддержкой API или командой O365/OneDrive? Я выкопал все попытки найти подходящий канал. – JEBoothjr

+0

Документ https://dev.onedrive.com/terms-of-use.htm предоставляет информацию об условиях использования и подробностях наших границ поддержки. Он также предоставляет варианты поддержки в нижней части страницы. Эти опции Поддержка голоса пользователя и Stack Overflow Там вы можете получить помощь в вопросах программирования или отметить проблемы с API, я снова извиняться любые неудобства, этот вопрос, возможно, причинили вам. С наилучшими пожеланиями Стив Microsoft Office 365 Поддержка Спасибо, Стивен Кларк офис 365 Support – Burnsy

+0

Я открыл билет поддержки, используя интерфейс администратора в O365, он идет по электронной почте: [email protected] – Burnsy

0

Проблема с аутентификацией. Этот код кажется исправить:

  var adalAuthProvider = new AdalAuthenticationProvider(
        this.AadClientId, 
        this.AadReturnUrl); 

      this.oneDriveClient = new OneDriveClient(this.AadTargetUrl + "/_api/v2.0", adalAuthProvider, new HttpProvider(new HttpClientHandler { AllowAutoRedirect = true }, true)); 
      authTask = adalAuthProvider.AuthenticateUserAsync(this.AadTargetUrl); 

      try 
      { 
       await authTask; 
      } 
+0

Я понимаю одно и то же. Если я использую значение @ content.downloadUrl с заголовком Auth, я могу воссоздать проблему. Если я использую это значение и удаляю заголовок auth, я могу получить «контент», но наш синтаксический анализатор не работает, поэтому я думаю, что он возвращает сам файл, а не содержимое файла? – JEBoothjr

+0

На моем конце была небольшая проблема. @contentdownloadUrl работает. Но я должен удалить заголовок auth для этого вызова. – JEBoothjr

Смежные вопросы