2017-12-14 12 views
1

amazon s3でファイルをアップロードするときにエラーが発生します。次のように コードは次のとおりです。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

+0

:で

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); }); } 

より多くの例。私はs3ライブラリを知らないけど、あなたが間違ったメッセージを読んだところから、彼はパスの代わりにストリームを期待しているようだ。 localdir: 'file-path'をlocaldir:fs.​​createReadStream( 'filepath')に変更してみてください。私はそれが動作するのか分からない。私が言ったように、私はs3ライブラリを知らない – Radar155

答えて