javascript - Amazon s3 Node 文件上传错误

标签 javascript node.js amazon-s3 npm

我在 amazon s3 中上传文件时出错。 代码如下:

        const s3 = require('s3');  const client = s3.createClient({
             maxAsyncS3: 100,
             s3RetryCount: 3,
             s3RetryDelay: 30000,
             multipartUploadThreshold: 20971520,
             multipartUploadSize: 15728640,
             s3Options: {
                 accessKeyId: "xxxx",
                 secretAccessKey: "yyyy",
                 region: "us-east-2",
             },    });
            const params = {
             localDir: "file-path",
             s3Params: {
               Bucket: "bucket-name",
               Prefix: "images/image.jpg"
             },    };    
          const uploader = client.uploadDir(params); 
       uploader.on('error', (err) => {
             console.error("unable to upload:", err.stack);  
      });    
uploader.on('progress', () => {
             console.log("progress", uploader.progressMd5Amount,
                       uploader.progressAmount, uploader.progressTotal);    });    
uploader.on('end', () => {
             console.log("done uploading");    });

我得到的错误是:

unable to upload: Error: Non-file stream objects are not supported with SigV4 in AWS.S3

最佳答案

您应该向上传方法传递一个文件。 这是一个例子:

  var file = files[0];
  var fileName = file.name;
  var albumPhotosKey = encodeURIComponent(albumName) + '//';

  var photoKey = albumPhotosKey + fileName;
  s3.upload({
    Key: photoKey,
    Body: file,
    ACL: 'public-read'
  }, function(err, data) {
    if (err) {
      return alert('There was an error uploading your photo: ', err.message);
    }
    alert('Successfully uploaded photo.');
    viewAlbum(albumName);
  });
}

更多示例位于:http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-example-photo-album-full.html

关于javascript - Amazon s3 Node 文件上传错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47811684/

相关文章:

javascript - 如何在部分回发中保留脚本 block ?

JavaScriptEncode 看起来不对

node.js - 检查nodejs中的另一个函数中是否存在一个函数

javascript - NodeJS 将文本缓冲区转换为可查看的 HTML 页面

django - boto.exception.S3ResponseError : S3ResponseError: 403 Forbidden 错误

javascript - 使用 AWS SDK for JavaScript 访问 AWS S3

javascript - NextJS 错误消息 : Failed prop type: The prop `href` expects a `string` or `object` in `<Link>` , 但得到了 `undefined`

javascript - 如何使用 wp_dequeue_script 或 wp_deregister_scripts 从 WordPress 中删除所有脚本

node.js - 将 Cloudformation 模板中自定义资源支持的 lambda 从 6.10 更新到 8.10,不再发送请求

node.js - Visual Studio Code - Node 应用程序与 Chrome 调试器冲突