Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

183
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda