이미지 파일 스트리밍 API

morningstar·2021년 7월 7일
0

localhost:{port}/v1/api/image로 요청을 하면 이미지를 받아올 수 있다.

@RestController
@RequiredArgsConstructor
public class ImageController {
    private final ImageService imageService;

    @ApiOperation(value = "이미지 불러오기")
    @GetMapping(value = "/v1/api/image", produces = MediaType.IMAGE_JPEG_VALUE)
    @ResponseStatus(HttpStatus.OK)
    public byte[] streamImage() {
        return imageService.viewImage();
    }
}
@Service
@RequiredArgsConstructor
public class ImageService {
    public byte[] viewImage() {
        String imagePath = {imagePath};
        String imageName = {imageName};

        try (
                FileInputStream inputStream = new FileInputStream(imagePath + imageName);
                ByteArrayOutputStream outputStream = new ByteArrayOutputStream()
        ) {
            byte[] buffer = new byte[8192];
            int length;
            while ((length = inputStream.read(buffer)) != -1)
                outputStream.write(buffer, 0, length);
            return outputStream.toByteArray();
        } catch (IOException e) {
            throw new CustomedException();
        }
    }
}
profile
오늘 달리면 내일 걸을 수 있다!

0개의 댓글