【问题标题】:Multipart form, order of fields/files多部分表单,字段/文件的顺序
【发布时间】:2020-07-28 01:26:47
【问题描述】:

我的 API 需要处理文件上传以及电子邮件中的附件。电子邮件通过 Sendgrid 的邮件解析功能路由到我的 API。

这两种方法都会生成多部分表单。在电子邮件的情况下,字段是“to”、“from”等。在普通的上传表单中,我决定字段。

我不想处理本地临时文件,所以理想情况下我只需将文件流通过管道传输到 S3。我已经实现了这个并且效果很好。但也有边缘情况..

在将文件传输到 S3 之前,我想确保电子邮件是合法的。我通过检查 from 和 to 地址来做到这一点。不幸的是,多部分表单没有指定字段/文件的特定顺序,而是规范说要保留原始表单的顺序。

问题

有时我会收到来自 Sendgrid 解析的电子邮件,这些邮件是在文件之后字段到达的地方。

因此,为了通过表单字段验证发件人,我可能需要在等待字段数据时缓冲文件。这似乎是一种处理传入文件的非常愚蠢的方式,即在我知道是否应该处理文件之前就开始处理/存储文件。

发送到指定子域的所有电子邮件都将从 Sendgrid 转发到我的服务器。这意味着我可能会收到大量电子邮件,我必须完全处理(包括缓冲文件)才能确定电子邮件是否合法。

问题

我是不是误会了什么?

一些电子邮件客户端推迟下载附件。这是怎么做到的?

我正在使用的工具

  • node.js

  • 多方

  • Sendgrid 解析

【问题讨论】:

    标签: javascript sendgrid multipart multiparty


    【解决方案1】:

    我终于明白了这一点。简单的答案是多部分表单是单个流。如果文件出现在流中的字段之前,我必须在等待字段时缓冲文件。至少如果我需要字段中的信息来处理文件。

    我猜想能够延迟下载附件的电子邮件客户端必须依赖于解析电子邮件并缓冲文件的服务器。

    感谢https://github.com/pillarjs/multiparty 的 Doug Wilson 澄清这一点。

    【讨论】:

      猜你喜欢
      • 2011-07-18
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 2011-08-09
      • 1970-01-01
      • 2017-11-21
      • 2010-10-29
      相关资源
      最近更新 更多