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