2016-01-05 64 views
2

以下是我的节点JavaScript代码,用于使用s3fs库将图像上传到Amazon S3。图像正确上传,但是当我尝试在浏览器中查看该图像时,它提供了下面提到的错误。节点js s3fs图像上传到aws amazon s3服务器并设置ContentType

我检查了内容类型,默认保存为octet-stream。如果我手动将其设置为image/jpeg,那么该图像可在浏览器中查看。任何人都可以告诉我只能在上传完成后才能设置Content-Type吗?

我试图设置内容类型,但它不工作S3fs图像上传。

错误代码: -

<Error> 
<Code>NoSuchKey</Code> 
<Message>The specified key does not exist.</Message> 
</Error> 

我的实际代码: -

var AWS= require('aws-sdk'); 

    var fs = require('fs'); 

    var S3FS = require('s3fs'); 

    var s3fsImpl = new S3FS('bbqmobileimages/images/banners',{ 
     accessKeyId:'A********A', 
     secretAccessKey:'****************' 
    }); 

    var multiparty = require('connect-multiparty'), 
     multipartyMiddleware = multiparty(); 

    router.use(multipartyMiddleware); 

     router.post('/api/v1/backoffice/upload/image',function(req,res){ 

      console.log(JSON.stringify(req.files)); 
      var file = req.files; 
      console.log("file",JSON.stringify(file)) 
      console.log("original name:- "+file.fileUpload.originalFilename); 
      console.log("Path:- ",file.fileUpload.path); 
      var stream = fs.createReadStream(file.fileUpload.path); 
      return s3fsImpl.writeFile(file.fileUpload.originalFilename, stream).then(function(){ 
       fs.unlink(file.fileUpload.path, function(err){ 
        console.error(err); 
       }) 
       console.log("Sucessfully uploaded to Amazon S3 server"); 
      }); 
     }); 

回答

1

尝试

s3fsImpl.writeFile(file.fileUpload.originalFilename, stream, {"ContentType":"image/jpg"}) 

这里找到:https://github.com/RiptideElements/s3fs/issues/45

+1

谢谢哥们其工作的罚款(Y) –

+0

@HemantNa garkoti如果我的回答对您有帮助,请点击左侧的复选标记并将我的答案标记为正确。 – Houseman

相关问题