AWS

 

API 사용법

업로드

s3_put.js

 

var AWS = require('aws-sdk');
var fs = require('fs');
AWS.config.region = 'ap-northeast-2';
var s3 = new AWS.S3();
var param = {
    'Bucket':'codingeverybody2',
    'Key':'logo.png',
    'ACL':'public-read',
    'Body':fs.createReadStream('94.png'),
    'ContentType':'image/png'
}
s3.upload(param, function(err, data){
    console.log(err);
    console.log(data);
})

 

nodejs stream에 대한 좀 더 자세한 내용은 Nanha Park님의 Stream 시리즈를 보실 것을 권합니다. 

  1. http://nodeqa.com/nodejs_ref/22
  2. http://nodeqa.com/nodejs_ref/23
  3. http://nodeqa.com/nodejs_ref/27

목록

 

s3_list.js

var AWS = require('aws-sdk');
AWS.config.region = 'ap-northeast-2';
var s3 = new AWS.S3();
s3.listObjects({Bucket: 'codingeverybody2'}).on('success', function handlePage(response) {
    for(var name in response.data.Contents){
        console.log(response.data.Contents[name].Key);
    }
    if (response.hasNextPage()) {
        response.nextPage().on('success', handlePage).send();
    }
}).send();

 

다운로드

s3_get.js

 

var AWS = require('aws-sdk');
AWS.config.region = 'ap-northeast-2';
var s3 = new AWS.S3();
var file = require('fs').createWriteStream('logo.png');
var params = {Bucket:'codingeverybody2', Key:'logo.png'};
s3.getObject(params).createReadStream().pipe(file);

 

nodejs 웹에플리케이션에서 s3 SDK 활용

s3_app.js

 

var express = require('express');
var formidable = require('formidable');
var AWS = require('aws-sdk');
AWS.config.region = 'ap-northeast-2';
var app = express();
app.get('/s3', function(req, res){
    console.log(1);
    res.send('Hello s3');
});
app.get('/form', function(req, res){
    var output = `
<html>
<body>
    <form enctype="multipart/form-data" method="post" action="upload_receiver">
        <input type="file" name="userfile">
        <input type="submit">
    </form>
</body>
</html>
    `;
    res.send(output);
});
app.post('/upload_receiver', function(req, res){
   var form = new formidable.IncomingForm();
   form.parse(req, function(err, fields, files){
       var s3 = new AWS.S3();
       var params = {
            Bucket:'codingeverybody2',
            Key:files.userfile.name,
            ACL:'public-read',
            Body: require('fs').createReadStream(files.userfile.path)
       }
       s3.upload(params, function(err, data){
            var result='';
            if(err)
                result = 'Fail';
            else
                result = `<img src="${data.Location}">`;
            res.send(`<html><body>${result}</body></html>`);
       });
   });
});
app.use(function(err, req, res, next) {
      console.error(err.stack);
        res.status(500).send('Something broke!');
});
app.listen(80, function(){
    console.log('Connected');
})

 

 

 

 

 

 

 

 

 

 

 

about author

PHRASE

Level 60  라이트

이 세상에서 자기 자신보다 사랑스러운 것은 없다. 그러므로 자신이 사랑스러운 사람은 남을 헤쳐서는 아니 된다. -상응부경전

댓글 ( 4)

댓글 남기기

작성

AWS 목록    more