From e12943d79dfa71539a3bbc59fe912fda0a17cc83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?lkd9125=28=EC=9D=B4=EA=B2=BD=EB=8F=84=29?= Date: Tue, 12 Dec 2023 17:05:37 +0900 Subject: [PATCH] =?UTF-8?q?storage=20=EC=A3=BC=EC=84=9D=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storage/controller/StorageController.java | 15 ++++++++++++++ .../comn/storage/service/StorageService.java | 20 +++++++++++++++++++ 2 files changed, 35 insertions(+) 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 23934d5..2a7ce44 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 a364365..cfe92ea 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)) {