Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

188
Vistas
Error "Tipo de codificación de contenido no reconocido" al cargar una imagen

Estoy tratando de obtener imágenes que he subido a mi CDN. canvas.toDataURL para convertir mis imágenes a PNG antes de cargarlas.

Recibo el siguiente error cuando intento obtener las imágenes: Error: cURL error 61: Unrecognized content encoding type. libcurl understands deflate, gzip, br content encodings

Entonces, primero creé esta imagen usando FabricJS: luego la estoy exportando como PNG usando:

 const dataURL = canvas.toDataURL({ width: canvas.width, height: canvas.height, left: 0, top: 0, format: 'png' })

Luego lo estoy subiendo a mi S3 CDN usando:

 async function uploadPNG(dataURL, filePath) { const buf = Buffer.from(dataURL.replace(/^data:image\/\w+;base64,/, ""),'base64') const uploadParams = { Bucket: bucketName, ContentType: 'image/png', ContentEncoding: 'base64', Body: buf, Key: filePath } return await s3.upload(uploadParams).promise() }

Luego, estoy tratando de cargar esa imagen (que ahora está en S3 CDN) en un sitio de WooCommerce usando su API. https://s3.eu-central-1.amazonaws.com/cdn.blankt.com/product/s/AY6AJSHMXnf2ReCZOu.png

Aquí hay parte de esa solicitud de API:

 { "name": "AY6AJSHMXnf2ReCZOu", "type": "variable", "regular_price": "9.90", "sku": "AY6AJSHMXnf2ReCZOu", ... ], "images": [ { "src": "https://s3.eu-central-1.amazonaws.com/cdn.blankt.com/product/s/AY6AJSHMXnf2ReCZOu.png" } ], "attributes" : [ { "name" : "Size", "variation" : true, "visible" : true, "options" : [ "A3", "A4", "A5" ] } ] }

Y esta es la respuesta que recibo: ingrese la descripción de la imagen aquí

Este problema parece aparecer solo cuando trato de cargar la imagen usando la API, si descargo y cargo la imagen manualmente en WooCommerce, no hay problemas.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Parecería que está proporcionando la codificación de contenido no válido en su carga s3, donde proporciona el parámetro ContentEncoding: 'base64' .

La documentación del SDK de s3 para el método de upload no está clara en cuanto a los detalles del manejo del parámetro ContentEncoding :

ContentEncoding: (cadena) especifica qué codificaciones de contenido se han aplicado al objeto y, por lo tanto, qué mecanismos de decodificación se deben aplicar para obtener el tipo de medio al que hace referencia el campo de encabezado Content-Type.

Pero mi sospecha es que simplemente se transmite como el encabezado HTTP Content-Encoding ( MDN ) cuando se accede al objeto. En cuyo caso, la imagen se carga bien en su navegador porque es lo suficientemente inteligente (o quizás tonto) como para descartar la codificación que no reconoce, sin embargo, el backend de WooCommerce no hace eso y, en cambio, produce un error.

Solución : elimine ContentEncoding de sus parámetros de carga de s3; en primer lugar, no está cargando contenido codificado, ya que decodifica los datos base64 en bytes sin procesar cuando los pasa a Buffer.from con el parámetro de codificación 'base64' (consulte Buffer.from(string[, encoding]) y codificaciones de caracteres en documentos de Node.JS)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda