#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» Проблема заключалась в том, что я пропустил часть авторизации. Спасибо за помощь