You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

引入multer-s3报错Cannot find module '@aws-sdk/abort-controller'

问题描述

使用multer和multer-s3实现服务端图片上传功能时,引入multer-s3包触发报错,初始报错信息如下:

Error: Cannot find module '@aws-sdk/abort-controller'

对应的引入代码如下:

const multers3 = require('multer-s3');

当前运行环境为Node.js v16.15.1,完整错误栈信息如下:

node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module '@aws-sdk/abort-controller'
Require stack:
- /Users/venkat/ecom_server/node_modules/@aws-sdk/lib-storage/dist-cjs/Upload.js
- /Users/venkat/ecom_server/node_modules/@aws-sdk/lib-storage/dist-cjs/index.js
- /Users/venkat/ecom_server/node_modules/multer-s3/index.js
- /Users/venkat/ecom_server/index.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/Users/venkat/ecom_server/node_modules/@aws-sdk/lib-storage/dist-cjs/Upload.js:4:28)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/venkat/ecom_server/node_modules/@aws-sdk/lib-storage/dist-cjs/Upload.js',
    '/Users/venkat/ecom_server/node_modules/@aws-sdk/lib-storage/dist-cjs/index.js',
    '/Users/venkat/ecom_server/node_modules/multer-s3/index.js',
    '/Users/venkat/ecom_server/index.js'
  ]
}
解决方案

报错根因是3.x版本的multer-s3基于AWS SDK v3开发,@aws-sdk/abort-controller是其必需的peer依赖,多数场景下npm/yarn不会自动安装peer依赖,就会触发模块找不到的错误,按以下步骤修复:

  • 手动安装multer-s3依赖的全套AWS SDK v3相关包:
    使用npm执行以下命令:
    npm install @aws-sdk/abort-controller @aws-sdk/client-s3 @aws-sdk/lib-storage
    
    使用yarn执行以下命令:
    yarn add @aws-sdk/abort-controller @aws-sdk/client-s3 @aws-sdk/lib-storage
    
  • 如果执行完上述安装后仍报其他AWS SDK相关模块缺失,直接删除项目根目录下的node_modules文件夹,以及对应包管理器的锁文件(npm对应package-lock.json、yarn对应yarn.lock、pnpm对应pnpm-lock.yaml),重新执行全量依赖安装命令即可。
  • 额外排查点:确认你安装的multer-s3版本为3.x及以上,2.x版本的multer-s3适配旧版AWS SDK v2,和新版依赖逻辑不兼容,如果当前装的是2.x版本,先执行卸载再重装最新版:
    npm uninstall multer-s3
    npm install multer-s3@latest
    

内容的提问来源于stack exchange,提问作者Venkat Cpr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 14:39:52