Supongo que esto es tanto una llamada de atención sobre el hecho de que la documentación parece ser completamente incorrecta en su aplicación, como también en general es deficiente. Normalmente, les enviaría esa parte del mensaje personalmente, pero su formulario de contacto también me da errores y no se envía, por lo que no es como si tuviera los medios para hacerlo de todos modos. Mientras tanto, estoy más preocupado por hacer que este código funcione, así que espero que alguien experimentado con este SDK o un miembro del equipo de Image4io vea esto y pueda proporcionar una respuesta pública para otros que tropiezan con este obstáculo.
Para empezar, inicialicé el objeto Image4io como se describe en el github aquí: https://github.com/Image4IO/image4ionodeSDK/
documentación del sitio web: https://image4.io/en/documentation/api-sdk/#operation/UploadImage
El ejemplo de carga de imágenes proporcionado en la documentación del sitio web se ve así:
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 de las muy escasas 4 líneas de código que proporcionan dan errores. ¿De dónde vino este objeto Modelos? No hay una clase correspondiente en la importación y el ejemplo de código obviamente no muestra dónde se definió. ¿Qué es y de dónde vino?
Bueno, encontré una función coincidente "UploadImagesRequest" en la clase de importación original, así que supongo que Models quedó en desuso y su funcionalidad se movió al objeto de la clase Image4io. Si ese fuera el caso, la solución sería simplemente acceder a esa función en su lugar... Pero no se usa igual. Tiene 4 argumentos, siendo el 4º un tipo "Image4io.UploadFile[]". Este tipo no tiene ejemplos de uso en la documentación ni detalles adicionales que describan qué es exactamente . Supongo que los datos de bytes de la imagen entran allí de alguna manera, pero ¿cómo?
Finalmente tenemos request.Add... excepto que no lo hacemos porque no es una función :( parece que esto se usó para obtener los datos de la imagen (¿quizás del tipo UploadFile?) en función de la ruta de la imagen Si esta función ya no existe, ¿cómo se obtienen los datos del archivo para usarlos en la función de solicitud de carga?
Cualquier y toda ayuda para descubrir este SDK sería muy apreciada. Las búsquedas de Google no arrojaron resultados significativos, así que esperamos que podamos ayudar en ese departamento también. Por lo que sé, de alguna manera obtuve la versión incorrecta. Supongo que podría intentar cambiar a una versión que coincida con la documentación, pero... a mi modo de ver, eso no es una solución.
Avíseme si hay más información que pueda proporcionar para ayudar
Puedes subir una imagen como esta:
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))Si tiene datos binarios a mano, puede escribirlos en un archivo temporal y luego cargarlos.