2016-09-07 5 views
0

AWSを初めてお持ちで、AWS S3 API(http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html)を使用してファイルをアップロードする方法を理解しようとしています。ノードjsと郵便番号を使用してAWS S3にファイルをアップロード

バケットを作成してすべてのバケットのリストを取得できますが、ファイルのアップロードには苦労しています。

これはコードである:私は私のサーバーを実行するときに、私は次のようにlocalhost:8080/uploadに郵便配達を使用してPOSTリクエストを作ってみる

router.post('/upload', function(req, res, next) { 
    var params = { 
     Bucket: req.body.bucketName, 
     Key: req.body.key, 
     Body: req.body.body 
    } 
    s3.putObject(params, function(err, data) { 
     if (err) { 
      return next(err) 
     } else { 
      res.json(data) 
     } 
    }) 
}) 

:ファイルを添付し、キーと体を - しかし、私私はこの部分を間違っていると思う。 postman view

そして私はまた、ファイル添付:質問がある

enter image description here

を:

私が正しく理解していますfollowing- Bucketは私がにアップロードするバケット名を=、Key =ファイル名、Body =ファイルの内容は?

私はファイルを取得、現在のコードのようにはい、どのように私は、これはS3バケットにアップロードしてもらうならば、むしろ私の「test.txt」ファイルよりも中身「heello」と「text.txt」と呼ばS3に追加しました。

答えて

1

ファイルを正しくアップロードしようとしていますか?したがって、マルチパート/フォームデータのコンテンツタイプを使用する必要があります。本体では、ファイルバッファを指すことができます。私の場合は

、私が闊歩して使用します。

upload: (req, res) => { 
    const params = { 
    Bucket: 'bucket-name', 
    Key: req.swagger.params.file.value.originalname, 
    ACL: 'public-read', 
    Body: req.swagger.params.file.value.buffer 
    }; 

    s3.putObject(params, function(err, data) { 
    if (err) { 
     console.log('Error uploading image: ', err); 
     res.status(500).json().end(); 
    } else { 
     res.status(200).json('File is uploaded').end(); 
    } 
    }) 
}