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 시리즈를 보실 것을 권합니다.
목록
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');
})











댓글 ( 4)
댓글 남기기