Image4io и NodeJS: Документация явно устарела. Как мне загрузить изображение?

#javascript #node.js

Вопрос:

Я предполагаю, что это в такой же степени привлекает внимание к тому факту, что документация, по-видимому, совершенно неверна в своем применении, а также просто в целом отсутствует. Обычно я бы отправил эту часть сообщения им лично, но их контактная форма также выдает мне ошибки и не отправляет, так что в любом случае у меня нет средств для этого. В то же время я больше беспокоюсь о том, чтобы заставить этот код работать, поэтому, надеюсь, кто-то, имеющий опыт работы с этим SDK, или член команды Image4io, увидит это и сможет дать публичный ответ другим, кто столкнется с этим препятствием.

Для начала я инициализировал объект Image4io, как описано здесь на github: https://github.com/Image4IO/image4ionodeSDK/

документация на веб-сайте: https://image4.io/en/documentation/api-sdk/#operation/UploadImage

Пример загрузки изображения, приведенный в документации веб-сайта, выглядит следующим образом:

 let client=new Image4ioAPI.Image4ioAPI(apiKey,apiSecret);
var request = new Models.UploadImagesRequest("/folderName", true, true);
request.Add("/path/to/image/location/name-of-the-image.jpg", "name-of-the-image", "name-of-the-image.jpg");
let response=client.UploadImage(request);
 

3 из очень редких 4 строк кода, которые они предоставляют, выдают ошибки. Откуда взялся этот объект Модели? В импорте нет соответствующего класса, и пример кода, очевидно, не показывает, где он был определен. Что это такое и откуда оно взялось?

Ну, я нашел соответствующую функцию «UploadImagesRequest» в исходном классе импорта, поэтому я предполагаю, что Models устарела, и ее функциональность была перенесена в объект класса Image4io. Если бы это было так, то решением было бы просто получить доступ к этой функции вместо этого… Но он используется по-другому. У него есть 4 аргумента, 4-й из которых — «Image4io.Введите » Загрузить файл []». Этот тип не имеет примеров использования в документации или дополнительных подробностей, описывающих, что это такое. Я предполагаю, что байтовые данные изображения каким-то образом попадают туда, но как?

Наконец, у нас есть запрос.Добавить… за исключением того, что мы этого не делаем, потому что это не функция 🙁 похоже, что это было использовано для фактического получения данных изображения (возможно, типа uploadFile?) на основе пути к изображению. Если эта функция сейчас отключена, как получить данные файла для использования в функции запроса на загрузку?

Мы будем очень признательны за любую помощь в разработке этого SDK. Поиск в Google не дал никаких значимых результатов, так что, надеюсь, мы сможем помочь и в этом отделе. Насколько я знаю, я просто каким-то образом получил неправильную версию. Я думаю, я мог бы попробовать понизить рейтинг до версии, соответствующей документации, но… на мой взгляд, это совсем не исправление.

Дайте мне знать, если есть еще какая — либо информация, которую я мог бы предоставить, чтобы помочь

Ответ №1:

Вы можете загрузить изображение следующим образом:

 var client=new Image4ioClient(API_KEY,API_SECRET);
var files=Array();
files.push(new UploadFile("./test.jpg","test.jpg"));

client.UploadImage(new UploadImagesRequest("/",true,false,files))
    .then(res=>console.log(res))
 

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