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

162
Vistas
¿Es posible leer/decodificar .avro uInt8Array Container File con Javascript en el navegador?

Estoy tratando de decodificar un archivo .avro cargado desde un servidor web.

Dado que la versión de cadena de uInt8Array comienza con
"búfer de S3 Objavro.schema�{"tipo":"registro","nombre":"Destino",..."
Supongo que es un archivo de contenedor avro

Encontré ' avro.js ' y ' avsc ' como herramientas para trabajar con el formato .avro y javascript, pero al leer la documentación parece que la decodificación de un archivo contenedor solo es posible en Node.js, no en el navegador. (Los métodos FileDecoder/Encoder toman una ruta a un archivo como cadena, no como uInt8Array)

¿Me equivoco o hay una forma alternativa de decodificar un archivo contenedor .avro en el navegador con javascript?

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

0

¡Gracias por publicar!

A continuación se muestra mi integración de avro/binary con axios, en caso de que ayude a alguien más que intente implementar la decodificación del lado del navegador:

[ antes de navegar ]

 const axios = require('axios') const avro = require('avsc') const config = { responseType: 'blob' }; const url = 'https://some-url.com' axios.get(url, config) .then(res => { avro.createBlobDecoder(res.data) .on('metadata', (type) => console.log(type)) .on('data', (record) => console.log(record)) }) .catch(e => console.error(e))
about 4 years ago · Juan Pablo Isaza Denunciar

0

Afortunadamente encontré una manera de usar avsc con broserify

 avro.createBlobDecoder(blob, [{options}])
[avro.js - antes de navegar]
 var avro = require('avsc'); const AVRO = { decodeBlob(blob) { let schema, columnTitles, columnTypes, records = [] return new Promise((resolve) => { avro.createBlobDecoder(blob, { // noDecode: true }) .on('metadata', (s) => { schema = s columnTitles = schema.fields.map(f => f.name) columnTypes = schema.fields.map(f => f.type) }) .on('data', (data) => { records.push(data) }) .on('finish', () => { resolve( { columnTitles: columnTitles, columnTypes: columnTypes, records: records } ) }) }) } } module.exports = AVRO
[paquete.json]
 "scripts": { "avro": "browserify public/avro.js --s AVRO > public/build/avro.js" }
[algúnOtroArchivo.js]
 //s3.getObject => uInt8array const blob = new Blob([uInt8array]) //arr in brackets !important const avroDataObj = await AVRO.decodeBlob(blob)
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