JEE обслуживать файл, размещенный на webdav - PullRequest
0 голосов
/ 14 мая 2019

У меня есть файлы на сервере WebDav.

У меня есть JEE 7 REST API, который позволяет загружать эти файлы, если и только если предоставлены соответствующие учетные данные.

У нас есть решение, которое загружает файл в byte[] и возвращает ответ октетного потока:


    @Produces(MediaType.APPLICATION_OCTET_STREAM)
    public Response getFile(@PathParam("businessKey") String businessKey, @QueryParam("file-name") String fileName,
            @QueryParam("field-name") String fieldName, @QueryParam("bearer") String token) {
        ....
        try {
            byte[] file = new WebDavServices().downloadFile(fileName, fieldName, businessKey);
            return Response.ok(file, MediaType.APPLICATION_OCTET_STREAM).header("Content-Disposition", "attachment; filename=\"" + fileName + "\"")
                .build();

        } catch (IOException e) {
            LOGGER.error(e);
            return Response.status(Status.INTERNAL_SERVER_ERROR).build();
        }

Загрузка файла в память и последующая передача его исходному вызывающему абоненту не кажется оптимальной, поскольку единственная цель конечной точки REST - проверка учетных данных.

Возможно ли, чтобы наша конечная точка "передавала" файл с файлового сервера обратно клиенту? Или передать файл обратно клиенту вместо загрузки всего файла и последующей отправки его обратно клиенту?

...