Мой API должен обрабатывать загрузки файлов, а также вложенных файлов в сообщениях электронной почты. Письма направляются в мой API через функцию анализа почты в Sendgrid.
Оба метода приводят к многочастной форме. В случае с электронной почтой поля «to», «from» и т. Д. c. В обычной форме загрузки я выбираю поля.
Я не хочу обрабатывать локальные временные файлы, поэтому в идеале я просто передам потоки файлов на S3. Я реализовал это, и это прекрасно работает. Но есть крайние случаи ..
Прежде чем я передам файлы на S3, я хочу убедиться, что электронная почта имеет тип * * * * * * *. Я делаю это, проверяя адреса от и до. К сожалению, в составных формах не указывается конкретный порядок c для полей / файлов, скорее, выражение c говорит о сохранении порядка исходной формы.
Задача
Иногда я получал электронные письма от синтаксического анализа Sendgrid, куда приходят поля ПОСЛЕ файлов.
Итак, для проверки отправителя через поля формы мне может понадобиться буферизовать файл во время ожидания данных поля. Кажется, это довольно глупый способ обработки входящих файлов, т.е. начать обрабатывать / хранить файлы, прежде чем я даже узнаю, должен ли я их обрабатывать.
Все электронные письма, отправленные на указанный поддомен, будут пересылаться из Sendgrid на мой сервер. Это означает, что я потенциально мог быть залит электронными письмами, которые мне пришлось бы обработать полностью (включая буферизацию файлов), прежде чем я смогу решить, является ли электронное письмо le git.
Вопрос
Я что-то не так понял?
Некоторые почтовые клиенты откладывают загрузку вложений. Как это сделать?
Инструменты, которые я использую
node.js
multiparty
Sendgrid Parse