Graph API: загрузка небольшого элемента в OneDrive завершается с ошибкой 504

#azure #microsoft-graph-api #office365 #onedrive

#azure #microsoft-graph-api #office365 #onedrive

Вопрос:

Я пытаюсь загрузить небольшой элемент (размером менее 4 МБ) в OneDrive. Несколько дней назад он работал отлично, но теперь я постоянно вижу ошибку 504.

Я использую Graph API и пакетную обработку JSON для загрузки в OneDrive. Тот же код работает с другими клиентами, но для этого конкретного клиента не выполняется последние 4/5 дней.

Обратите внимание, что загрузка элементов и загрузка больших элементов (размером более 4 МБ) работают отлично.

Пожалуйста, дайте мне знать, если у кого-нибудь есть какие-либо идеи по поводу этой проблемы.

Ответ об ошибке, который я получаю ниже:

 {"responses": [
   {
       "id": "1",
       "status":504,
       "headers" : {
          "Content-Type":"application/json"},
          "body":"ew0KICAiZXJyb3IiOiB7DQogICAgImNvZGUiOiAiVW5r
                  bm93bkVycm9yIiwNCiAgICAibWVzc2FnZSI6ICIiLA0KICAgICJp
                  bm5lckVycm9yIjogew0KICAgICAgImRhdGUiOiAiMjAyMC0xMi0
                  yOFQxMDo1NDo1NyIsDQogICAgICAicmVxdWVzdC1pZCI6ICJjMmYzYWFmNi1lZj
                  EyLTRhZTMtOWUwYy0yMTI5ZTJhZTg4ZDEiLA0KICAgICAgImNsa
                  WVudC1yZXF1ZXN0LWlkIjogImMyZjNhYWY2LWVmMTItNGFlMy0
                  5ZTBjLTIxMjllMmFlODhkMSINCiAgICB9DQogIH0NCn0="},
        {
           "id": "2","status":424,
           "body":{
                 "error": {
                 "code": "FailedDependency",
                 "message": "Request failed as dependent request failed",
                 "innerError": {
                    "date": "2020-12-28T10:54:57",
                    "request-id": "c2f3aaf6-ef12-4ae3-9e0c-2129e2ae88d1",
                    "client-request-id": "c2f3aaf6-ef12-4ae3-9e0c-2129e2ae88d1"
               }
             }
 

Я отправляю запрос после кодирования тела в формат Base 64. Текст Base 64 в приведенном выше ответе переводится следующим образом:

 {
    "error": {
    "code": "UnknownError",
    "message": "",
    "innerError": {
              "date": "2020-12-28T10:54:57",
              "request-id": "c2f3aaf6-ef12-4ae3-9e0c-2129e2ae88d1",
              "client-request-id": "c2f3aaf6-ef12-4ae3-9e0c-2129e2ae88d1"
     }
 }
 

}

Комментарии:

1. Если вы получаете ошибки 503 или 504, есть вероятность, что вы регулируете из-за высокой нагрузки: docs.microsoft.com/en-us/graph/errors . ошибки 503 и 504 не упоминаются в руководстве по регулированию MS: docs.microsoft.com/en-us/graph/throttling , поскольку они не являются прямой виной клиента. Однако применение тех же принципов, что и в руководстве, таких как политика повторных попыток или предотвращение пиков запросов, поможет вам справиться с этими ошибками. При этом, это между Рождеством и Новым годом, поэтому это также может быть проблемой, связанной с обслуживанием.

2. Я попробовал повторить попытку, и это не помогло. Если это проблема с обслуживанием, мне интересно, как пользователи на местах сталкиваются с этим и какой обходной путь они используют.

3. Хорошо, вы используете пакетную обработку JSON и видите ошибку. Если вы использовали два разных вызова, выясните, какой вызов приводит к этому. Протестируйте то же самое с Graph Explorer или POSTMAN, изолируйте проблему и попытайтесь ее устранить. Я знаю, что 503/504 являются связанными серверами, но имейте в виду, что вы должны использовать пакетную обработку JSON и не нарушать ее ограничения, как описано в документации, из-за этого вы можете видеть эту ошибку.