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

179
Vistas
Bloqueo de la memoria al enviar un archivo de más de 100 MB a S3 en Chrome

Actualmente estoy usando Javascript para cargar algunos archivos de video en S3. El proceso funciona para archivos <100 MB, pero para ~ 100 MB más en Chrome me encuentro con un error (esto funciona en Safari). Estoy usando ManagedUpload en este ejemplo, que debería estar haciendo multipart/form-data en segundo plano.

Fragmento de código:

 ... let upload = new AWS.S3.ManagedUpload({ params:{ Bucket: 'my-bucket', Key: videoFileName, Body: videoHere, ACL: "public-read" } }); upload.promise(); ...

Chrome falla con el error RESULT_CODE_INVALID_CMDLINE_URL , las herramientas de desarrollo fallan y en los registros de la terminal de Chrome aparece esto:

 [5573:0x3000000000] 27692 ms: Scavenge 567.7 (585.5) -> 567.7 (585.5) MB, 23.8 / 0.0 ms (average mu = 0.995, current mu = 0.768) allocation failure [5573:0x3000000000] 28253 ms: Mark-sweep 854.6 (872.4) -> 609.4 (627.1) MB, 235.8 / 0.0 ms (+ 2.3 ms in 2 steps since start of marking, biggest step 1.4 ms, walltime since start of marking 799 ms) (average mu = 0.940, current mu = 0.797) allocation fa <--- JS stacktrace ---> [5573:775:0705/140126.808951:FATAL:memory.cc(38)] Out of memory. size=0 [0705/140126.813085:WARNING:process_memory_mac.cc(93)] mach_vm_read(0x7ffee4199000, 0x2000): (os/kern) invalid address (1) [0705/140126.880084:WARNING:system_snapshot_mac.cc(42)] sysctlbyname kern.nx: No such file or directory (2)

También intenté usar HTTP PUT, ambos funcionan para archivos más pequeños, pero una vez que me hago más grande, ambos fallan.

¿Algunas ideas? He revisado toneladas de publicaciones de SO / documentos de AWS, pero nada ayudó con este problema todavía.

Editar: he presentado el problema con Chrome; parece que es un error real. Actualizaré la publicación cuando tenga una respuesta.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Este problema provino de cargar el archivo grande en la memoria (varias veces), lo que bloquearía Chrome incluso antes de que tuviera la oportunidad de cargarse.

La solución fue usar createObjectURL (una URL que apunta al archivo) en lugar de readAsDataUrl (el archivo completo), y al enviar el archivo a su API, use const newFile = new File([await fetch(objectURL).then(req => req.blob()], 'example.mp4', {type: 'video/mp4'});

Esto funcionó para mí ya que estaba haciendo muchas conversiones para obtener readAsDataUrl al tipo de archivo que quería, pero de esta manera uso mucho menos espacio.

over 4 years ago · Santiago Trujillo 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