Spring boot 簡單的圖片反向代理

jerry80409
2 min readMay 15, 2020

--

反向代理的好處

  1. 保護 Server 跟 Resource
  2. 可在代理上作快取, Loadbalance, 優化資源存取速度
  3. 節約 IP 的使用, 或做一些 URL 的管理, 短網址, 短連結…

Sample Code

@GetMapping(value = "/image", produces = MediaType.IMAGE_JPEG_VALUE)
public ResponseEntity<byte[]> image() throws Exception {
URL url = new URL("圖片 URL");
URLConnection connection = url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) ...");
BufferedImage image = ImageIO.read(connection.getInputStream());
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", outputStream);

HttpHeaders header = new HttpHeaders();
header.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=img.jpg");
return ResponseEntity.ok()
.headers(header)
.body(outputStream.toByteArray());
}

--

--

jerry80409
jerry80409

Written by jerry80409

隨便記錄一些沒有整理很清楚的想法

No responses yet