diff --git a/pav-server/src/main/java/com/palnet/comn/storage/controller/StorageController.java b/pav-server/src/main/java/com/palnet/comn/storage/controller/StorageController.java index 23934d5f..2a7ce449 100644 --- a/pav-server/src/main/java/com/palnet/comn/storage/controller/StorageController.java +++ b/pav-server/src/main/java/com/palnet/comn/storage/controller/StorageController.java @@ -22,11 +22,21 @@ public class StorageController { @Autowired private StorageService service; + /** + * 파일 업로드 기능 + * @param file + * @return + */ @PostMapping("/upload") public ResponseEntity uploadFile(@RequestParam(value = "file") MultipartFile file) { return new ResponseEntity<>(service.uploadFile(file), HttpStatus.OK); } + /** + * 파일 다운로드 기능. + * @param fileName + * @return + */ @GetMapping("/download/{fileName}") public ResponseEntity downloadFile(@PathVariable String fileName) { byte[] data = service.downloadFile(fileName); @@ -39,6 +49,11 @@ public class StorageController { .body(resource); } + /** + * 파일 삭제 기능. + * @param fileName + * @return + */ @DeleteMapping("/delete/{fileName}") public ResponseEntity deleteFile(@PathVariable String fileName) { return new ResponseEntity<>(service.deleteFile(fileName), HttpStatus.OK); diff --git a/pav-server/src/main/java/com/palnet/comn/storage/service/StorageService.java b/pav-server/src/main/java/com/palnet/comn/storage/service/StorageService.java index a364365d..cfe92eac 100644 --- a/pav-server/src/main/java/com/palnet/comn/storage/service/StorageService.java +++ b/pav-server/src/main/java/com/palnet/comn/storage/service/StorageService.java @@ -25,6 +25,11 @@ public class StorageService { @Autowired private AmazonS3 s3Client; + /** + * 파일 업로드 기능. + * @param file + * @return + */ public String uploadFile(MultipartFile file) { File fileObj = convertMultiPartFileToFile(file); String fileName = System.currentTimeMillis() + "_" + file.getOriginalFilename(); @@ -34,6 +39,11 @@ public class StorageService { } + /** + * 파일 다운로드 기능. 아마존 S3에 있는 데이터 다운로드해주는 기능. + * @param fileName + * @return + */ public byte[] downloadFile(String fileName) { S3Object s3Object = s3Client.getObject(bucketName, fileName); S3ObjectInputStream inputStream = s3Object.getObjectContent(); @@ -47,12 +57,22 @@ public class StorageService { } + /** + * 아마존 S3에 있는 데이터 삭제하는 기능. + * @param fileName + * @return + */ public String deleteFile(String fileName) { s3Client.deleteObject(bucketName, fileName); return fileName + " removed ..."; } + /** + * MultipartFile로 받은 객체를 File 객체로 변환 + * @param file + * @return + */ private File convertMultiPartFileToFile(MultipartFile file) { File convertedFile = new File(file.getOriginalFilename()); try (FileOutputStream fos = new FileOutputStream(convertedFile)) {