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

Node.js应用使用AWS SDK v3上传S3时加载错误排查求助

Node.js + AWS SDK v3 上传S3时加载语法错误排查

问题背景

开发Node.js应用,使用AWS SDK v3上传文件到S3,程序加载时触发语法错误,附相关代码及错误栈,请求解决。

相关依赖配置

"dependencies": {
    "@aws-sdk/client-s3": "^3.332.0",
    "@aws-sdk/lib-storage": "^3.332.0"
}

初始化代码

const { Upload } = require('@aws-sdk/lib-storage');
const { S3Client } = require("@aws-sdk/client-s3");
const stream = 'node:stream';
const client = new S3Client({});

上传逻辑代码

function fileWriteStreamHandler(file) {
    const body = new stream.PassThrough();
    const upload = new Upload({
        client,
        params: {
            Key: `files/${Date.now().toString()}-${file.originalFilename}`,
            ContentType: file.mimetype,
            ACL: 'public-read',
            Bucket: s3Config.bucket,
            Body: body,
        },
    });
    const uploadRequest = upload.done().then((response) => {
        file.location = response.Location;
    });
    s3Uploads.push(uploadRequest);
    return body;
}

错误信息

发生错误。错误内容:C:\...\node_modules\@aws-sdk\client-s3\dist-cjs\runtimeConfig.js:32
        runtime: "node",
        ^^^^^^^

语法错误:意外的标识符 'runtime'
    在 internalCompileFunction (node:internal/vm:73:18)
    在 wrapSafe (node:internal/modules/cjs/loader:1159:20)
    在 Module._compile (node:internal/modules/cjs/loader:1203:27)
    在 Module._extensions..js (node:internal/modules/cjs/loader:1293:10)
    在 Module.load (node:internal/modules/cjs/loader:1096:32)
    在 Module._load (node:internal/modules/cjs/loader:935:12)
    在 Module.require (node:internal/modules/cjs/loader:1120:19)
    在 require (node:internal/modules/helpers:112:18)
    在 Object.<anonymous> (C:\...\node_modules\@aws-sdk\client-s3\dist-cjs\S3Client.js:18:25)
    在 Module._compile (node:internal/modules/cjs/loader:1239:14)
    在 Module._extensions..js (node:internal/modules/cjs/loader:1293:10)
    在 Module.load (node:internal/modules/cjs/loader:1096:32)
    在 Module._load (node:internal/modules/cjs/loader:935:12)
    在 Module.require (node:internal/modules/cjs/loader:1120:19)
    在 require (node:internal/modules/helpers:112:18)
    在 Object.<anonymous> (C:...\node_modules\@aws-sdk\client-s3\dist-cjs\S3.js:98:20)
    在 Module._compile (node:internal/modules/cjs/loader:1239:14)
    在 Module._extensions..js (node:internal/modules/cjs/loader:1293:10)
    在 Module.load (node:internal/modules/cjs/loader:1096:32)
    在 Module._load (node:internal/modules/cjs/loader:935:12)
    在 Module.require (node:internal/modules/cjs/loader:1120:19)
    在 require (node:internal/modules/helpers:112:18)
    堆栈跟踪重复:C:\...\node_modules\@aws-sdk\client-s3\dist-cjs\runtimeConfig.js:32
        runtime: "node",
        ^^^^^^^

语法错误:意外的标识符 'runtime'
    在 internalCompileFunction (node:internal/vm:73:18)
    在 wrapSafe (node:internal/modules/cjs/loader:1159:20)
    在 Module._compile (node:internal/modules/cjs/loader:1203:27)
    在 Module._extensions..js (node:internal/modules/cjs/loader:1293:10)
    在 Module.load (node:internal/modules/cjs/loader:1096:32)
    在 Module._load (node:internal/modules/cjs/loader:935:12)
    在 Module.require (node:internal/modules/cjs/loader:1120:19)
    在 require (node:internal/modules/helpers:112:18)
    在 Object.<anonymous> (C:\...\node_modules\@aws-sdk\client-s3\dist-cjs\S3Client.js:18:25)
    在 Module._compile (node:internal/modules/cjs/loader:1239:14)
    在 Module._extensions..js (node:internal/modules/cjs/loader:1293:10)
    在 Module.load (node:internal/modules/cjs/loader:1096:32)
    在 Module._load (node:internal/modules/cjs/loader:935:12)
    在 Module.require (node:internal/modules/cjs/loader:1120:19)
    在 require (node:internal/modules/helpers:112:18)
    在 Object.<anonymous> (C:\...\node_modules\@aws-sdk\client-s3\dist-cjs\S3.js:98:20)
    在 Module._compile (node:internal/modules/cjs/loader:1239:14)
    在 Module._extensions..js (node:internal/modules/cjs/loader:1293:10)
    在 Module.load (node:internal/modules/cjs/loader:1096:32)
    在 Module._load (node:internal/modules/cjs/loader:935:12)
    在 Module.require (node:internal/modules/cjs/loader:1120:19)
    在 require (node:internal/modules/helpers:112:18)
    进程即将重启。

解决方法

  1. 升级Node.js版本:AWS SDK v3从3.x版本开始要求Node.js v14或更高版本,当前错误是因为Node.js版本过低不支持SDK中的语法。运行node -v查看当前版本,升级到v14.x及以上的LTS版本(推荐v18或v20)。
  2. 修复初始化代码错误:const stream = 'node:stream';这行写法错误,应改为const stream = require('node:stream');,否则无法调用stream.PassThrough()。
  3. 重新安装依赖:
    • 删除node_modules和package-lock.json:
      rm -rf node_modules package-lock.json
      
    • 重新安装依赖:
      npm install
      

内容的提问来源于stack exchange,提问作者Boris K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 19:48:09