Получение странной ошибки от службы преобразования документов Watson

Я пытаюсь преобразовать некоторые документы в блоки ответов с помощью службы преобразования документов Watson, используя библиотеку Javascript watson-developer-cloud в Node.js. Некоторые из них (пример находится по внутренней ссылке IBM и представляет собой файл .DOCX) возвращают эту ошибку:

Ошибка: код: ошибка 400: предоставленные данные находятся в формате Office 2007+ XML. Вы звоните в ту часть POI, которая занимается документами OLE2 Office. Вам нужно вызвать другую часть POI для обработки этих данных (например, XSSF вместо HSSF).

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

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


person David Powell    schedule 07.11.2016    source источник
comment
Вот сообщение от человека, который получил такое же сообщение об ошибке от Microsoft Excel. stackoverflow.com/questions/12593752/. Я не уверен, насколько это поможет, но может указать вам правильное направление. Пожалуйста, удалите ссылку на внутренний документ IBM, так как ваш вопрос действительно касается форматов документов, а не их содержания. Если вам нужно поделиться подробностями внутренней документации IBM, это можно сделать на внутреннем форуме IBM.   -  person ralphearle    schedule 07.11.2016


Ответы (1)


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

Если имя файла недоступно (т. е. не передано вашим пользователем), вы можете указать тип носителя файла, который вы загружаете, в файловой части вызова convert:

file: {
    value: fs.createReadStream('filename'),
    options: {
      contentType: 'application/vnd.openxmlformats officedocument.wordprocessingml.document'
    }
}
person Jim Hurne    schedule 08.11.2016
comment
contentType, похоже, не работает, но content_type работает. - person David Powell; 12.11.2016