leeseohyeon

s3_new 파일 생성

......@@ -3,7 +3,7 @@ var router = express.Router();
var AWS = require('aws-sdk');
AWS.config.loadFromPath(__dirname + "/../modules/awsconfig.json");
var S3 = require('../modules/s3/s3');
var S3 = require('../modules/s3/s3_new');
// /file/delete/:name
......@@ -15,30 +15,17 @@ router.get('/:name', function (req, res) {
var targetPath = 'trashcan';
var sourceFile = curPath.substring(1) + file_name;
var sql1 = 'DELETE FROM files WHERE file_name = (?) AND location=(?) AND user_Id = (?)';
var sql2 = 'INSERT INTO trashcan (trash_name, location, user_Id) VALUES (?, ?, ?)';
connection.query(sql1, [file_name, curPath, user_id], function (err) {
var sql1 = 'UPDATE files SET location = ? WHERE location = ? AND file_name = ? AND user_id = ?;';
connection.query(sql1, ['/trashcan/', curPath, file_name, user_id], function (err) {
if (err) {
console.log('delete db error');
res.send({erorr: 'db delete error'});
}
else {
//connection.query(sql2, [file_name, '/trashcan'+curPath, user_id], function (err) {
connection.query(sql2, [file_name, '/trashcan/', user_id], function (err) {
if (err) {
console.log('insert in trashcan db error');
res.send({error: 'db insert error'});
}
else {
// /drive/user_id/sourceFile --> /drive/user_id/trashcan/sourceFile
S3.moveFile4(S3.BUCKET_NAME, user_id, sourceFile, targetPath, function (result) {
if (result) {
res.send({message: "move to trashcan success"});
}else{
res.send({err: "no such file"})
}
})
console.log('update db error');
res.send({ erorr: 'db update error' });
} else {
S3.moveFile4(S3.BUCKET_NAME, user_id, sourceFile, targetPath, function (result) {
if (result) {
res.send("move to trashcan success");
} else {
res.send({ err: "no such file" })
}
})
}
......@@ -46,4 +33,67 @@ router.get('/:name', function (req, res) {
});
// /file/delete/:name
// router.get('/:name', function (req, res) {
// console.log(req.query);
// console.log(req.params);
// var file_name = req.params.name;
// var user_id = req.query.id;
// var curPath = req.query.cur;
// var targetPath = 'trashcan';
// var sourceFile = curPath.substring(1) + file_name;
// var sql1 = 'UPDATE files SET location = ? WHERE location = ? AND file_name = ? AND user_id = ?;';
// connection.query(sql1, ['/trashcan/', curPath, file_name, user_id], function (err) {
// if (err) {
// console.log('update db error');
// res.send({ erorr: 'db update error' });
// } else {
// S3.moveFile2(S3.BUCKET_NAME, user_id, sourceFile, file_name, targetPath, function (result) {
// if (result) {
// res.send("move to trashcan success");
// }
// })
// }
// })
// });
// // /file/delete/:name
// router.get('/:name', function (req, res) {
// var file_name = req.params.name;
// var user_id = req.query.id;
// var curPath = req.query.cur;
// var targetPath = 'trashcan';
// var sourceFile = curPath.substring(1) + file_name;
// var sql1 = 'DELETE FROM files WHERE file_name = (?) AND location=(?) AND user_Id = (?)';
// var sql2 = 'INSERT INTO trashcan (trash_name, location, user_Id) VALUES (?, ?, ?)';
// connection.query(sql1, [file_name, curPath, user_id], function (err) {
// if (err) {
// console.log('delete db error');
// res.send({erorr: 'db delete error'});
// }
// else {
// connection.query(sql2, [file_name, '/trashcan'+curPath, user_id], function (err) {
// if (err) {
// console.log('insert in trashcan db error');
// res.send({error: 'db insert error'});
// }
// else {
// // /drive/user_id/sourceFile --> /drive/user_id/trashcan/sourceFile
// S3.moveFile2(S3.BUCKET_NAME, user_id, sourceFile, targetPath, function (result) {
// if (result) {
// res.send("move to trashcan success");
// }
// })
// }
// })
// }
// })
// });
module.exports = router;
\ No newline at end of file
......
......@@ -6,7 +6,7 @@ var moment = require('moment');
var AWS = require('aws-sdk');
AWS.config.loadFromPath(__dirname + "/../modules/awsconfig.json");
var S3 = require('../modules/s3/s3');
var S3 = require('../modules/s3/s3_new');
......
......@@ -3,7 +3,7 @@ var router = express.Router();
var AWS = require('aws-sdk');
AWS.config.loadFromPath(__dirname + "/../modules/awsconfig.json");
var S3 = require('../modules/s3/s3');
var S3 = require('../modules/s3/s3_new');
var fs = require('fs');
......
......@@ -3,7 +3,7 @@ var router = express.Router();
var AWS = require('aws-sdk');
AWS.config.loadFromPath(__dirname + "/../modules/awsconfig.json");
var S3 = require('../modules/s3/s3');
var S3 = require('../modules/s3/s3_new');
var fs = require('fs');
var moment = require('moment');
......
......@@ -6,7 +6,7 @@ var moment = require('moment');
var AWS = require('aws-sdk');
AWS.config.loadFromPath(__dirname + "/../modules/awsconfig.json");
var S3 = require('../modules/s3/s3');
var S3 = require('../modules/s3/s3_new');
......
......@@ -16,7 +16,7 @@
var AWS = require('aws-sdk');
AWS.config.update({ region: 'ap-northeast-2' });
var BUCKET_NAME = 'khuloud';
var BUCKET_NAME = 'qkrrlqja-test';
var s3 = new AWS.S3();
var fs = require('fs');
......@@ -73,7 +73,7 @@ var S3 = {
},
// 파일 덮어쓰기
coverFile: function(bucketName, userId, sourceFile, targetPath, body, callback) {
coverFile: function (bucketName, userId, sourceFile, targetPath, body, callback) {
var pathbody = fs.createReadStream(body);
if (targetPath != '' && targetPath[targetPath.length - 1] != '/') {
......@@ -136,17 +136,17 @@ var S3 = {
},
// /routes/modules/s3/download에 저장
downloadFile2: function(bucketName, userId, targetFile, callback){
downloadFile2: function (bucketName, userId, targetFile, callback) {
tempDownloadDir = __dirname + '/download/' + userId + '/' + targetFile;
S3.downloadFile(bucketName, userId, targetFile, function(result, data){
S3.downloadFile(bucketName, userId, targetFile, function (result, data) {
if (result) {
makeFolder(tempDownloadDir, function(result){
makeFolder(tempDownloadDir, function (result) {
if (result) {
fs.writeFileSync(tempDownloadDir, data);
callback(true, tempDownloadDir);
}
})
}else{
} else {
console.log('Download File Error');
callback(false);
}
......@@ -154,12 +154,12 @@ var S3 = {
},
// 최종
downloadFile3: function(bucketName, userId, targetFile, callback){
downloadFile3: function (bucketName, userId, targetFile, callback) {
// targetFile 예1 => test.txt
// targetFile 예2 => folder1/folder2/test.txt
var tempDownloadDir = __dirname + '/download/' + userId + '/' + targetFile;
makeFolder(tempDownloadDir, function(result){
if (result){
makeFolder(tempDownloadDir, function (result) {
if (result) {
var file = fs.createWriteStream(tempDownloadDir);
var params = {
Bucket: bucketName,
......@@ -167,15 +167,15 @@ var S3 = {
};
try {
var stream = s3.getObject(params).createReadStream().pipe(file);
stream.on('end', function(){
stream.on('end', function () {
console.log('end!');
callback(true, tempDownloadDir);
});
}catch(err){
} catch (err) {
console.log('no such file', err);
callback(false);
}
}else{
} else {
callback(false);
}
})
......@@ -230,9 +230,9 @@ var S3 = {
if (fullpath.substring(index) == targetFile) {
answer = true;
var splited = targetFile.split('(').join(',').split(')').join(',').split(',');
if (splited.length != 3){
if (splited.length != 3) {
lvNum = 0;
}else{
} else {
lvNum = parseInt(splited[1]);
console.log('isNum', lvNum);
}
......@@ -305,17 +305,17 @@ var S3 = {
// 파일 이름이 달라지는 경우
moveFile3: function (bucketName, userId, oldFile, newFile, targetPath, callback) {
if (targetPath != ''){
if (targetPath != '') {
targetPath = targetPath + '/';
}
sourceFile = targetPath + oldFile; // test.txt or folder1/test.txt
var targetFile = targetPath + newFile;
S3.copyFile2(bucketName, userId, sourceFile, targetFile, function(result){
if (!result){
S3.copyFile2(bucketName, userId, sourceFile, targetFile, function (result) {
if (!result) {
console.log("Move Error on Copying File3");
callback(false);
}else{
} else {
S3.deleteFile(bucketName, userId, sourceFile, function (res) {
if (!res) {
console.log("Move Error on Deleting File");
......@@ -329,14 +329,14 @@ var S3 = {
})
},
renameFile: function(bucketName, userId, sourceFile, modiFile, targetPath, callback){
renameFile: function (bucketName, userId, sourceFile, modiFile, targetPath, callback) {
// sourceFile = test.txt
// modiFile = test2.txt
// targetPath = '' or 'folder1/folder2'
if (sourceFile == modiFile){ // 이름 변경되지 않은 경우
if (sourceFile == modiFile) { // 이름 변경되지 않은 경우
callback(true, sourceFile);
}else{
} else {
if (targetPath != '') {
targetPath = targetpath + '/';
}
......@@ -375,7 +375,7 @@ var S3 = {
uploadFile: function (bucketName, userId, sourceFile, targetPath, body, callback) {
var pathbody = fs.createReadStream(body);
if (targetPath!='' && targetPath[targetPath.length-1]!='/') {
if (targetPath != '' && targetPath[targetPath.length - 1] != '/') {
targetPath = targetPath + '/';
}
var targetFile = targetPath + sourceFile;
......@@ -393,11 +393,11 @@ var S3 = {
} else {
if (ans) {
console.log("File Duplication");
S3.makeVersion(bucketName, userId, sourceFile, lvNum+1, function(res, versionedSourceFile){
if (!res){
S3.makeVersion(bucketName, userId, sourceFile, lvNum + 1, function (res, versionedSourceFile) {
if (!res) {
console.log("Make version failed");
callback(false, sourceFile);
}else{
} else {
S3.uploadFile(bucketName, userId, versionedSourceFile, targetPath, body, callback);
}
})
......@@ -423,7 +423,7 @@ var S3 = {
if (!res) {
errFiles.push(sourceFiles[iter]);
}
if (sourceFiles[iter] != resSourceFile){ // 파일 중복으로 다른 버전이 생긴 경우
if (sourceFiles[iter] != resSourceFile) { // 파일 중복으로 다른 버전이 생긴 경우
sourceFiles[iter] = resSourceFile;
}
S3.uploadFiles(iter + 1, errFiles, bucketName, userId, sourceFiles, targetPath, bodies, callback);
......@@ -440,21 +440,21 @@ var S3 = {
},
}
var makeFolder = function(dir, callback){
var paths = dir.substring(__dirname.length+1); // download/userId/folder1/folder2/test.txt
var makeFolder = function (dir, callback) {
var paths = dir.substring(__dirname.length + 1); // download/userId/folder1/folder2/test.txt
paths = paths.split('/');
var folders = __dirname;
for(var i=0; i<paths.length-1; i++){
folders += '/'+paths[i];
if(!fs.existsSync(folders)){
for (var i = 0; i < paths.length - 1; i++) {
folders += '/' + paths[i];
if (!fs.existsSync(folders)) {
fs.mkdirSync(folders)
}
}
if (fs.existsSync(folders)){
if (fs.existsSync(folders)) {
callback(true);
}else{
} else {
callback(false);
}
}
......
This diff is collapsed. Click to expand it.