Skip to content

Commit 134d763

Browse files
committed
avniproject/avni-media#174 - endpoint that can be used to download a file.
1 parent 16c9f9d commit 134d763

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

avni-server-api/src/main/java/org/avni/server/web/MediaController.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import org.slf4j.Logger;
1414
import org.slf4j.LoggerFactory;
1515
import org.springframework.beans.factory.annotation.Autowired;
16+
import org.springframework.core.io.InputStreamResource;
17+
import org.springframework.http.HttpHeaders;
1618
import org.springframework.http.HttpStatus;
1719
import org.springframework.http.MediaType;
1820
import org.springframework.http.ResponseEntity;
@@ -25,6 +27,7 @@
2527
import javax.servlet.http.HttpServletResponse;
2628
import java.awt.*;
2729
import java.io.File;
30+
import java.io.FileInputStream;
2831
import java.io.IOException;
2932
import java.io.UnsupportedEncodingException;
3033
import java.net.URL;
@@ -179,4 +182,14 @@ private boolean isInvalidDimension(File tempSourceFile, AvniFiles.ImageType imag
179182
Dimension dimension = AvniFiles.getImageDimension(tempSourceFile, imageType);
180183
return dimension.getHeight() > 75 || dimension.getWidth() > 75;
181184
}
185+
186+
@GetMapping("/web/media/downloadStream")
187+
public ResponseEntity<InputStreamResource> downloadFile(@RequestParam String s3Url, @RequestParam String fileName) throws IOException {
188+
InputStreamResource resource = new InputStreamResource(s3Service.getObjectContentFromUrl(s3Url));
189+
190+
return ResponseEntity.ok()
191+
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + fileName)
192+
.contentType(MediaType.parseMediaType("application/octet-stream"))
193+
.body(resource);
194+
}
182195
}

0 commit comments

Comments
 (0)