Sendgrid-nodejs: PDF codificado en Base64 como archivo adjunto

Creado en 15 abr. 2016  ·  4Comentarios  ·  Fuente: sendgrid/sendgrid-nodejs

Tengo un archivo PDF codificado en base64 y quiero adjuntarlo a un correo electrónico. Cuando lo adjunto con el siguiente código, el correo electrónico enviado tiene un PDF corrupto adjunto:

email.addFile({
    filename: 'my-file.pdf',
    content: aBase64EncodedPDF,
    contentType: 'application/pdf',
}); 

Comentario más útil

Habrá agregado una cadena base64 como adjunto con el código anterior, lo que significa que deberá guardar el adjunto y decodificarlo en el otro extremo. Creo que es posible que realmente hayas querido hacer esto:

email.addFile({
    filename: 'my-file.pdf',
    content: new Buffer(aBase64EncodedPDF, 'base64'),
    contentType: 'application/pdf',
}); 

Todos 4 comentarios

Habrá agregado una cadena base64 como adjunto con el código anterior, lo que significa que deberá guardar el adjunto y decodificarlo en el otro extremo. Creo que es posible que realmente hayas querido hacer esto:

email.addFile({
    filename: 'my-file.pdf',
    content: new Buffer(aBase64EncodedPDF, 'base64'),
    contentType: 'application/pdf',
}); 

@ deaks-kt ¡gracias por tu contribución!

@danielflippance, ¿eso resolvió tu problema?

Gracias por la info. ¿Esa solución duplicaría la cantidad de memoria que se está utilizando? IE: ahora tendría una cadena base64 y un búfer que contiene la misma información. Si es así, eso aumentaría significativamente el uso de memoria en nuestros servidores ya que los PDF son bastante grandes, por lo que no sería apropiado en nuestro caso. Analizaré si podemos recuperar un búfer antes de renderizar a base64.

Sospecho que será casi el doble. Obtiene 3 bytes por cada 4 de Base64, que es una reducción del 25%, pero espero que haya algo de sobrecarga para la matriz. Si está realmente atascado y debe usar la base64, le recomiendo que investigue la solicitud de extracción n. ° 219 y consulte https://github.com/form-data/form-data (que es lo que está usando esta biblioteca a través de una solicitud) para ver si puede transmitir la decodificación base64 o tal vez incluso especificar que los datos del formulario ya están codificados durante el formulario.

¿Fue útil esta página
0 / 5 - 0 calificaciones