Задача преобразования файлов облачного хранилища в CloudConvert возвращает «сообщение»: «Не прошедший проверку подлинности

#google-cloud-storage #cloudconvert

# #google-облачное хранилище #преобразование облаков

Вопрос:

У меня есть файлы Excel xls в GCS, которые я пытаюсь преобразовать в csv с помощью cloudconvert API. Таким образом, я использую job builder в API версии v2 для создания необходимого curl для извлечения файла из GCS, преобразования и загрузки. Я предоставил необходимый ключ, учетную запись службы, разрешение на учетную запись службы и сведения о проекте. Проблема в том, что всякий раз, когда я использую curl, сформированный из CLI, я получаю следующую ошибку —

 {"message":"Unauthenticated.","code":"UNAUTHENTICATED"}
 

Образец запроса:

 curl -X POST "https://api.cloudconvert.com/v2/jobs"      
-H "Authorization: Bearer API_KEY"      
-H "Content-type: application/json"      
-d '{     
      "tasks": {
        "import-1": {             
          "operation": "import/google-cloud-storage",             
          "project_id": "sxxxxxx",             
          "bucket": "testxxxxxx",             
          "client_email": "testxxxxxxx@xxxxxxxx.iam.gserviceaccount.com",             
          "file": "testconvert.xls",             
          "private_key": "-----BEGIN PRIVATE KEY-----nMII--xxxxx--kQzfSan-----END PRIVATE KEY-----n"         
        }     
      } 
    }'
 

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

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

1. Не могли бы вы обновить свой пост и указать, как вы вызываете запрос? (не указывайте свои учетные данные!). Какие разрешения у вас есть для используемой учетной записи службы?

2. Для загрузки файла — curl -X POST "https://api.cloudconvert.com/v2/jobs"     -H "Authorization: Bearer API_KEY"     -H "Content-type: application/json"     -d '{     "tasks": {         "import-1": {             "operation": "import/google-cloud-storage",             "project_id": "sxxxxxx",             "bucket": "testxxxxxx",             "client_email": "testxxxxxxx@xxxxxxxx.iam.gserviceaccount.com",             "file": "testconvert.xls",             "private_key": "-----BEGIN PRIVATE KEY-----nMII--xxxxx--kQzfSan-----END PRIVATE KEY-----n"         }     } }'

3. @DonnaldCucharo Я предоставил администратору хранилища доступ к используемой учетной записи службы.

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

5. Вы пробовали не включать —— НАЧАЛЬНЫЙ ЗАКРЫТЫЙ КЛЮЧ —- n n —— КОНЕЧНЫЙ ЗАКРЫТЫЙ КЛЮЧ —— n по вашему запросу?

Ответ №1:

Согласно документу CloudConvert API:

Для проверки подлинности запросов вам необходимо создать ключ API. Срок действия ключей API не истекает, если вы их не отмените. Запросы проходят проверку подлинности с использованием заголовка Authorization: Bearer API_KEY.

При создании ключа API убедитесь, что по крайней мере отмечены следующие области:

  • задача.читать
  • задача.запись

Из предоставленных вами примеров запросов похоже, что вы предоставили полную информацию, за исключением заголовка авторизации.

Затем ваш заголовок аутентификации должен выглядеть следующим образом:

 -H "Authorization: Bearer eyJ0exxxxxxxx"     
 

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

1. Дополнительные форматы ввода — «private_key»: «—— НАЧИНАЮЩИЙ ЗАКРЫТЫЙ КЛЮЧ —- nMIIEvxxxN8CkQzfSa n —- КОНЕЦ ЗАКРЫТОГО КЛЮЧА —— n» Проблема заключалась в том, что я пропустил часть авторизации. Спасибо за помощь