Showing
2 changed files
with
42 additions
and
11 deletions
| 1 | { | 1 | { |
| 2 | - "accessKeyId": "ASIAZQ5XTMMF6YISFPTT", | 2 | + "accessKeyId": "ASIAZQ5XTMMF7TDZAE65", |
| 3 | - "secretAccessKey": "xA+qE27WeUITzCN2aCaOPjwuVsLPP7oUulJQMepo", | 3 | + "secretAccessKey": "6S8IoEaPLaml9KHDb1UrS6mewFm7xEizdUMJZWBe", |
| 4 | - "sessionToken": "FwoGZXIvYXdzEHYaDFT5RqkwQ+aGLKTBWSLDAa6JZ9gBHVnbifynA5/p7y83dZ0nu0LFsk2o6qU/GRgDUtc3eYXaOK9apAW8Hr47+FTKzS3ZLVE6eqafoCN0iPjkj/6wrLLZCAsVOA682O5nsNC3VTyrzLFr2tKIXpH4sUj6/pgqakH4O3Z36HNIe/icwzaamOQI2sheShLMKFL80RU6xV+MrmKSkcgP7cw87lPfSvMhcA5IQwu2sy37L/nVdQGPNAuljUP/jMCoEqCKc74iHka0MelLa7ImWF3SXX69nyjbt7n2BTItMKGD0w4ypJBEnA3wOaIks7MgxHeuVPNMsZkZawUAkJYbl8OgzWLBIS/xGWnL", | 4 | + "sessionToken": "FwoGZXIvYXdzEHgaDCqtdh2Y9+DetJSd6SLDAbpPE85YYhubMVWMpX8h4BvyzZZxZOaEHjlk4ix1KeVihUFvxgr7QHOWBEDIXeQBxlq7s/1pP/BzWU/rGZ6ykWPl/SEHXw9myP3KjeBiGLauHnF28CSZScLDHyTZPmIEa7e7xt1LQD3FKeifiH5fn2qEGqe+j0fG09SM8LfUz2NSxtEVhaDZGblK0hp3/lB7bPm25qz30FcxGmdKj1k7dKKvvRCvKTyi78eyz+8Y1rYbCzlSEgJcJHaZwWoGVpK7TFYxmCi48Ln2BTIt8hCtBEpDDbGf/9Y+ixIraevKKLXHM4JuJsL52URse2hMcTdnBRdyTVIDAyyK", |
| 5 | "region": "us-east-1" | 5 | "region": "us-east-1" |
| 6 | } | 6 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -144,9 +144,11 @@ var S3 = { | ... | @@ -144,9 +144,11 @@ var S3 = { |
| 144 | 144 | ||
| 145 | S3.getFileList(bucketName, userId, targetPath, function (res, data) { | 145 | S3.getFileList(bucketName, userId, targetPath, function (res, data) { |
| 146 | var answer = false; | 146 | var answer = false; |
| 147 | + var lvNum; | ||
| 148 | + | ||
| 147 | if (!res) { | 149 | if (!res) { |
| 148 | console.log("Overlap Check Error on Get List"); | 150 | console.log("Overlap Check Error on Get List"); |
| 149 | - callback(false, false); | 151 | + callback(false, answer, lvNum); |
| 150 | } else { | 152 | } else { |
| 151 | if (data) { | 153 | if (data) { |
| 152 | for (var i = 0; i < data.Contents.length; i++) { | 154 | for (var i = 0; i < data.Contents.length; i++) { |
| ... | @@ -155,11 +157,18 @@ var S3 = { | ... | @@ -155,11 +157,18 @@ var S3 = { |
| 155 | var index = paths[0].length + paths[1].length + 2; | 157 | var index = paths[0].length + paths[1].length + 2; |
| 156 | if (fullpath.substring(index) == targetFile) { | 158 | if (fullpath.substring(index) == targetFile) { |
| 157 | answer = true; | 159 | answer = true; |
| 160 | + var splited = targetFile.split('(').join(',').split(')').join(',').split(','); | ||
| 161 | + if (splited.length != 3){ | ||
| 162 | + lvNum = 0; | ||
| 163 | + }else{ | ||
| 164 | + lvNum = parseInt(splited[1]); | ||
| 165 | + console.log('isNum', lvNum); | ||
| 166 | + } | ||
| 158 | break; | 167 | break; |
| 159 | } | 168 | } |
| 160 | } | 169 | } |
| 161 | console.log("Overlap Check Success"); | 170 | console.log("Overlap Check Success"); |
| 162 | - callback(true, answer); | 171 | + callback(true, answer, lvNum); |
| 163 | } | 172 | } |
| 164 | } | 173 | } |
| 165 | }) | 174 | }) |
| ... | @@ -185,6 +194,18 @@ var S3 = { | ... | @@ -185,6 +194,18 @@ var S3 = { |
| 185 | }) | 194 | }) |
| 186 | }, | 195 | }, |
| 187 | 196 | ||
| 197 | + makeVersion: function(bucketName, userId, sourceFile, lvNum, callback){ | ||
| 198 | + var sourceFile; | ||
| 199 | + var splited = sourceFile.split('(').join(',').split(')').join(',').split(','); | ||
| 200 | + if (splited.length != 3){ | ||
| 201 | + sourceFile = sourceFile.split('.')[0] + '(' + lvNum.toString() + ')' + sourceFile.split('.')[1]; | ||
| 202 | + }else{ | ||
| 203 | + sourceFile = sourceFile.split('(')[0] + '(' + lvNum.toString() + ')' + sourceFile.split(')')[1]; | ||
| 204 | + } | ||
| 205 | + console.log('makeVersion ', sourceFile); | ||
| 206 | + callback(true, sourceFile); | ||
| 207 | + }, | ||
| 208 | + | ||
| 188 | // sourceFile에 임의의 경로가 포함된 경우 | 209 | // sourceFile에 임의의 경로가 포함된 경우 |
| 189 | moveFile2: function (bucketName, userId, sourceFile, targetPath, callback) { | 210 | moveFile2: function (bucketName, userId, sourceFile, targetPath, callback) { |
| 190 | var paths = sourceFile.split('/'); | 211 | var paths = sourceFile.split('/'); |
| ... | @@ -224,22 +245,29 @@ var S3 = { | ... | @@ -224,22 +245,29 @@ var S3 = { |
| 224 | Key: 'drive/' + userId + '/' + targetFile, | 245 | Key: 'drive/' + userId + '/' + targetFile, |
| 225 | Body: pathbody | 246 | Body: pathbody |
| 226 | }; | 247 | }; |
| 227 | - S3.isFileOverlapped(bucketName, userId, targetFile, function (res, ans) { | 248 | + S3.isFileOverlapped(bucketName, userId, targetFile, function (res, ans, lvNum) { |
| 228 | if (!res) { | 249 | if (!res) { |
| 229 | console.log("Overlap Check failed"); | 250 | console.log("Overlap Check failed"); |
| 230 | - callback(false); | 251 | + callback(false, sourceFile); |
| 231 | } else { | 252 | } else { |
| 232 | if (ans) { | 253 | if (ans) { |
| 233 | console.log("File Duplication"); | 254 | console.log("File Duplication"); |
| 234 | - callback(false); | 255 | + S3.makeVersion(bucketName, userId, sourceFile, lvNum+1, function(res, versionedSourceFile){ |
| 256 | + if (!res){ | ||
| 257 | + console.log("Make version failed"); | ||
| 258 | + callback(false, sourceFile); | ||
| 259 | + }else{ | ||
| 260 | + S3.uploadFile(bucketName, userId, versionedSourceFile, targetPath, body, callback); | ||
| 261 | + } | ||
| 262 | + }) | ||
| 235 | } else { | 263 | } else { |
| 236 | s3.upload(uploadParams, function (err, data) { | 264 | s3.upload(uploadParams, function (err, data) { |
| 237 | if (err) { | 265 | if (err) { |
| 238 | console.log("Upload Error" + err); | 266 | console.log("Upload Error" + err); |
| 239 | - callback(false); | 267 | + callback(false, sourceFile); |
| 240 | } else { | 268 | } else { |
| 241 | console.log("Upload Success"); | 269 | console.log("Upload Success"); |
| 242 | - callback(true); | 270 | + callback(true, sourceFile); |
| 243 | } | 271 | } |
| 244 | }) | 272 | }) |
| 245 | } | 273 | } |
| ... | @@ -250,10 +278,13 @@ var S3 = { | ... | @@ -250,10 +278,13 @@ var S3 = { |
| 250 | 278 | ||
| 251 | uploadFiles: function (iter, errFiles, bucketName, userId, sourceFiles, targetPath, bodies, callback) { | 279 | uploadFiles: function (iter, errFiles, bucketName, userId, sourceFiles, targetPath, bodies, callback) { |
| 252 | if (iter < sourceFiles.length) { | 280 | if (iter < sourceFiles.length) { |
| 253 | - S3.uploadFile(bucketName, userId, sourceFiles[iter], targetPath, bodies[iter], function (res) { | 281 | + S3.uploadFile(bucketName, userId, sourceFiles[iter], targetPath, bodies[iter], function (res, resSourceFile) { |
| 254 | if (!res) { | 282 | if (!res) { |
| 255 | errFiles.push(sourceFiles[iter]); | 283 | errFiles.push(sourceFiles[iter]); |
| 256 | } | 284 | } |
| 285 | + if (sourceFiles[iter] != resSourceFile){ // 파일 중복으로 다른 버전이 생긴 경우 | ||
| 286 | + sourceFiles[iter] = resSourceFile; | ||
| 287 | + } | ||
| 257 | S3.uploadFiles(iter + 1, errFiles, bucketName, userId, sourceFiles, targetPath, bodies, callback); | 288 | S3.uploadFiles(iter + 1, errFiles, bucketName, userId, sourceFiles, targetPath, bodies, callback); |
| 258 | }) | 289 | }) |
| 259 | } else { | 290 | } else { | ... | ... |
-
Please register or login to post a comment