AWS SDK:s3.upload不是函数

Jer*_*lle 6 javascript amazon-s3 node.js aws-sdk

我正在尝试从 Node.js 应用程序将文件上传到我的 S3 存储桶,因此我正在遵循一些非常简单的教程,例如本教程

代码非常简单:

const AWS = require("aws-sdk"); // fresh install, version : ^2.697.0

AWS.config.update({ // Credentials are OK
    accessKeyId: process.env.s3_accessKeyId,
    secretAccessKey: process.env.s3_secretAccessKey,
    region: 'eu-central-1'
});

const s3 = new AWS.S3();

let params = {
      // (some upload params, file name, bucket name etc)
 };

s3.upload(params); // <-- crash with error: "s3.upload is not a function"
Run Code Online (Sandbox Code Playgroud)

我看了AWS官方文档s3.upload()似乎是这样。我不知道为什么会出现错误。

如果我console.log(s3.upload)得到undefined

Node.js v13.11.0。

编辑

我最终使用了s3.putObject()which 与 , 做了几乎相同的事情s3.upload(),并且有效,而后者仍然莫名其妙地未定义......

console.log(`typeof s3.upload = `);
console.log(typeof s3.upload); // undefined?? WHY

console.log(`typeof s3.putObject = `);
console.log(typeof s3.putObject); // function, and works
Run Code Online (Sandbox Code Playgroud)

小智 1

你可以试试这个

s3 = new AWS.S3({apiVersion: '2006-03-01'});

s3.upload(params, function(err, data) {
  console.log(err, data);
});

Run Code Online (Sandbox Code Playgroud)