2014-09-19 13 views
0

Возможно ли использовать статические ресурсы из сжатого файла с использованием Spring MVC? Что-то вроде this.Служить статическим ресурсам из сжатого файла с помощью Spring

У меня есть некоторые данные, упакованные в отдельные файлы JSON (например, 123.json, 1634.json и т.д.), а также и в настоящее время служит их через

<mvc:resources mapping="/resources/**" location="/resources/" /> 

Файлы находятся под .../resources/dataFiles/. Таким образом, пользователь может перейти к http://mywebsite.com/resources/dataFiles/123.json для извлечения данных для объекта 123.

Однако у меня есть ~ 10 000 файлов JSON. Было бы здорово, если бы я мог сжать их под одним файлом (.../resources/dataFiles/entities.zip) и сообщить Spring, чтобы обслуживать отдельные файлы JSON из сжатого файла.

Таким образом, пользователь все равно будет обращаться к http://mywebsite.com/resources/dataFiles/123.json, но единственным файлом под .../resources/dataFiles/ является entity.zip.

Я использую Tomcat 7.0, если этот вопрос выходит за рамки рамки MVC.

+0

Итак, вы хотите Spring распаковать 'entities.zip', получить запись для конкретного файла и отправить его? –

+0

Я все еще не уверен, что вы просите. В 'entity.zip' нет' 123.json'. Существует _entry_ для '123.json', но эта запись имеет смысл только как часть всего файла' .zip'. Вы всегда можете сжимать '123.json' самостоятельно. –

+0

Извините @SotiriosDelimanolis, я пытался уточнить немного больше в моих изменениях, но ваш первый комментарий правильный. Я хочу заархивировать все 10 000 файлов и поместить их в один сжатый архив, который Spring будет обрабатывать как папку, чтобы отдельные файлы могли обслуживаться. Модуль, с которым я ссылаюсь в вопросе, делает именно это (но я не использую узел). – lebolo

ответ

1

Я не уверен, есть ли какой-то компонент Spring из коробки, но вы можете создать независимый сервлет для обработки входящих запросов для статических ресурсов, тогда этот сервлет будет анализировать имя файла, и динамически считывать из заархивированного файла правильную запись Zip и возвращать содержимое в OutputStream Response. Посмотрите на:

sample code

Смежные вопросы