Вот код, который вместо потокового видео (что я и хочу) загружает видео на диск.
@GET
@Path("/articleVideo/{videoID}")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response getArticleVideo(@PathParam("videoID") int videoID) {
MediaDAO mediaDAO = new MediaDAO();
MediaEntity video = mediaDAO.getMediaById(videoID);
if(video == null) {
throw new WebApplicationException("Requested user not found");
}
File file = new File(video.getLink());
if (!file.exists()) {
throw new WebApplicationException(404);
}
StreamingOutput out = new StreamingOutput() {
@Override
public void write(OutputStream output) throws IOException, WebApplicationException {
try {
InputStream input = new FileInputStream(file);
IOUtils.copy(input, output);
output.flush();
}
}
};
return Response.ok(out).build();
}
Я перепробовал много комбинаций и просмотрел здесь много других сообщений о переполнении стека, но ни одна из них не работает.