diff --git a/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java b/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java index 23332575..e9e1889d 100644 --- a/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java +++ b/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java @@ -293,6 +293,12 @@ public final void doHandle(HttpServletRequest baseRequest, String uri = request.getRequestURI(); String originalUri = request.getRequestURI(); + // Check for the /version endpoint + if ("/healthz".equals(uri) && "GET".equalsIgnoreCase(method)) { + handleVersionRequest(response); + return; + } + if (!this.servicePath.isEmpty()) { if (uri.length() > this.servicePath.length()) { uri = uri.substring(this.servicePath.length()); @@ -2029,6 +2035,18 @@ private void handlePutBlob(HttpServletRequest request, response.addHeader(HttpHeaders.ETAG, maybeQuoteETag(eTag)); } + private void handleVersionRequest(HttpServletResponse response) throws IOException { + response.setStatus(HttpServletResponse.SC_OK); + response.setContentType("application/json"); + response.setCharacterEncoding("UTF-8"); + + String versionInfo = "{ \"status\": \"OK\"}"; + + try (PrintWriter writer = response.getWriter()) { + writer.write(versionInfo); + writer.flush(); + } + } private void handlePostBlob(HttpServletRequest request, HttpServletResponse response, InputStream is, BlobStore blobStore,