【问题标题】:Nodejs fileupload, multer vs express-fileupload, which to use?Nodejs文件上传,multer vs express-fileupload,使用哪个?
【发布时间】:2020-11-13 00:43:10
【问题描述】:

我应该使用哪个库?唯一的目的是上传文件。就大型请求而言,我想在性能和可扩展性方面使用最优化的库。如果我的项目规模扩大,我最终会使用 CDN 服务。

【问题讨论】:

    标签: node.js file-upload multer


    【解决方案1】:

    在这种情况下选择库时,您必须考虑以下几点。

    首先是个人信念:

    • 所有这些东西都执行相同的任务,所以一切都取决于偏好,所以无论你喜欢做什么,都不要为此感到压力,因为所有这些都是基于意见的。

    但要回答您的问题:您应该选择哪一个?

    • 我推荐 3 个库,分别是 MulterFormidableBusboy

    那么在 Multer、Formidable 和 Busboy 之间选择哪一个

    1.如果要将文件存储在内存或磁盘中:

    • Multer 是您的图书馆之选

    2。如果要将文件存储在磁盘中:

    -强大的是你的库

    3.对于大批量生产级解决方案:

    • 当您遇到大量情况并希望从服务器获得最高可靠性时,最好的选择是根本不在 Node.js 服务器上存储中间文件。相反,您希望在收到文件后立即将它们推送到单独的文件服务器。文件服务器可以是 AWS S3 等云存储服务,也可以是支持 BLOB 的数据库。

    Base64 还是 Multipart?

    Base64:

    • Base64 是一种将二进制数据编码为 ASCII 字符的方法
    • 将数据格式化为 radix-64 表示形式。
    • 如果您上传的文件是大文件上传,那么我可以肯定地说不要使用 Base64,因为它会转换整个数据并将其发布到服务器。

    多部分:

    • 这样更快
    • Multipart 是一种以字节为单位的部分形式将数据上传到服务器的方法。但是,Multpart/form-data 应用于表单,因此您可以以多部分形式发送所有内容,也包括“常规”数据。

    【讨论】:

    • 非常感谢您回答这个问题。我的要求属于第 3 类。我希望使用 Imagekit.io 来存储图像。就在上传到 imagekit.io 之前,我需要在从前端获取后在某处缓冲它。我应该在哪里做?另外,从前端发送图像的最佳做法是什么?Base64 还是多部分? Base64 也可以解决上述疑问。
    • 好的,让我编辑我的答案,以便添加关于 base64 和 multipart 的第二部分
    • 取决于排名:D 是的,但我刚刚发布了您想要的更新答案,希望这能解决您的疑问,我的回答对您有所帮助
    • 所以问题出现了是什么让 multipart 更快
    猜你喜欢
    • 2018-07-21
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 2017-11-12
    • 2016-10-22
    • 2019-02-07
    • 1970-01-01
    • 2017-03-29
    相关资源
    最近更新 更多