2016-06-10 3 views
1

У нас есть веб-приложение, которое создает 2-3 изображения после запуска алгоритма. Мы хотим вернуть эти изображения пользователю. Я думал, что лучшим дизайном будет сохранение изображений вне базы кода проекта: во внешней папке, например, в каталоге /tmp.Может ли метод ресурса JAX-RS возвращать несколько изображений?

Во-первых, вы согласны с этим дизайнерским решением? Я чувствую, что база кода проекта будет раздуваться каждый раз, когда мы запускаем алгоритм. Мой босс хотел, чтобы я сохранил изображения внутри нашего webapp, но я сделал хороший пример для их хранения в каталоге /tmp.

Во-вторых, можно ли возвращать несколько изображений (скорее всего, 2 или 3) в одном ресурсном методе JAX-RS? Я никогда не видел этого, поэтому я склонен думать, что я должен написать общий метод ресурсов для возврата изображения с именем файла.

Я очень благодарен за отзыв по обоим вопросам. Спасибо заранее

+2

С моей точки зрения, веб-страницы имеют довольно стандартный способ обслуживания изображений (даже если клиент теперь представляет собой причудливые запросы AJAX). Для одного изображения есть один URL. Я бы не стал отступать от этого. Сделайте свой ресурс возвратом 2-3 URL-адресов для местоположений изображений. – Chill

+0

Поскольку алгоритм производит 2-3 изображения на каждой итерации, и мы должны удерживать эти изображения в течение как минимум недели, я опасаюсь, что база кода станет раздутой, если мы сохраним изображения внутри базы кода. Вот почему я хотел хранить их во внешнем месте. Имеют смысл? – ktm5124

ответ

1

У нас есть веб-приложение, которое создает 2-3 изображения после запуска алгоритма . Мы хотим вернуть эти изображения пользователю. Я думал, что лучший дизайн будет хранить изображения вне базы кода проекта: в внешняя папка, например каталог/tmp.

Во-первых, вы согласны с этим дизайнерским решением? Я чувствую, что база кода проекта будет раздуваться каждый раз, когда мы запускаем алгоритм. Мой босс хотел, чтобы я хранил изображения внутри нашего webapp, но я сделал хороший случай для их хранения в каталоге/tmp.

Решение вопроса о дизайне довольно основано на мнениях, я думаю. Я дам вам свои мысли, но я не могу сказать, что эта часть является «ответом», это всего лишь мнение.

Как я уже упоминал в комментарии, с моей точки зрения, веб-страницы имеют довольно стандартный способ обслуживания изображений (даже если клиент теперь представляет собой фантастические запросы AJAX). Для одного изображения есть один URL. Я бы не стал отступать от этого.

Где вы решаете принять их, зависит от вас. Я бы, вероятно, использовал веб-сервер, такой как nginx (в отличие от сервера приложений), который оптимизирован для обслуживания статического контента, такого как изображения, js-файлы и т. Д.

Я чувствую, что база кода проекта получит раздувается каждый раз, когда мы запускаем алгоритм.

Эта часть меня смущает. Вы создаете файлы изображений. Это всего лишь данные. Это не код, и он действительно не раздувает базу кода. Если вы имеете в виду потребление дискового пространства, где вы храните свой код, обязательно, размещайте его где-то в другом месте.

Во-вторых, можно вернуть несколько изображений (скорее всего, 2 или 3) в одном методе ресурсов JAX-RS? Я никогда не видел этого, так что Я склонен думать, что я должен написать общий метод ресурсов для , возвращая изображение с именем файла.

Это возможно в смысле слова. Вы можете кодировать изображения как текст, который будет использоваться для встроенных изображений.Например (украдено из page explaining embedding images in html):

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM0AAAD 
NCAMAAAAsYgRbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5c 
cllPAAAABJQTFRF3NSmzMewPxIG//ncJEJsldTou1jHgAAAARBJREFUeNrs2EEK 
gCAQBVDLuv+V20dENbMY831wKz4Y/VHb/5RGQ0NDQ0NDQ0NDQ0NDQ0NDQ 
0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0PzMWtyaGhoaGhoaGhoaGhoaGhoxtb0QGho 
aGhoaGhoaGhoaGhoaMbRLEvv50VTQ9OTQ5OpyZ01GpM2g0bfmDQaL7S+ofFC6x 
v3ZpxJiywakzbvd9r3RWPS9I2+MWk0+kbf0Hih9Y17U0nTHibrDDQ0NDQ0NDQ0 
NDQ0NDQ0NTXbRSL/AK72o6GhoaGhoRlL8951vwsNDQ0NDQ1NDc0WyHtDTEhD 
Q0NDQ0NTS5MdGhoaGhoaGhoaGhoaGhoaGhoaGhoaGposzSHAAErMwwQ2HwRQ 
AAAAAElFTkSuQmCC" alt="beastie.png"> 

Вы можете вернуть эти данные в объект ответа JSON как текст. Я бы этого не сделал, но это вариант.

Я бы просто возвратил объект ответа с URL-адресами, где можно получить фактические изображения. Это упрощает API.

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