es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo enviar una matriz de datos de búfer en la carga útil de AWS Lambda?

Estoy trabajando en una funcionalidad en la que necesito enviar una matriz de buffer que contiene imageData en un objeto junto con algunos otros campos.

ENTRADA DE EJEMPLO:

payload = { input:'buffer', data:ARRAY_OF_BUFFER, output:'buffer' }

Intenté usar JSON.stringify(payload) pero no está funcionando, puede ser un problema con el buffer, no estoy seguro si lo está convirtiendo correctamente o no.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para enviar una matriz de búfer que contiene datos de imagen en un objeto junto con otros campos, se puede utilizar la siguiente entrada de ejemplo:

    payload = {
      input: 'buffer',
      data: ARRAY_OF_BUFFER,
      output: 'buffer'
    }
    

    Para convertir el objeto payload en una cadena JSON utilizando JSON.stringify, se recomienda utilizar el método Buffer.from() para convertir cada búfer en la matriz a una cadena antes de convertirlo a una cadena. Esto se debe a que JSON.stringify no maneja directamente los búferes.

    let payloadStr = JSON.stringify({
      input: 'buffer',
      data: ARRAY_OF_BUFFER.map(buf => buf.toString('base64')),
      output: 'buffer'
    })
    

    Para convertir la cadena payloadStr de nuevo en un objeto con los datos de búfer originales, utilize el método Buffer.from() para convertir cada cadena en el campo data del objeto de nuevo en un búfer.

    let payloadObj = JSON.parse(payloadStr)
    payloadObj.data = payloadObj.data.map(str => Buffer.from(str, 'base64'))
    

    Alternativamente, puedes enviar la carga útil como datos binarios utilizando protocolos como msgpack.

Comments are closed.