Куда сохранять картинки? Docker + AWS

 
 
 
Сообщения:110
Что есть на данный момент:
Приложение находиться в war и деплоиться на локальный Tomcat через IDE IntelliJ IDEA .
Надо:Из этого всего сделать Docker образ и задеплоить на AWS.
Проблемы:
1)я незнаю куда(по какому пути) сохранять картинки, которые обрабатываются на бэкэнде через method="POST". Надо гарантировать чтобы при перезаливке приложения эти файлы остались нетронуты.
2)как этот путь сохранить в БД в формате http....?

Пока, решение такое: Файл(111.jpg) с помощью метода saveImage сохранился в папку(внутри приложения) D:\code\untitled1\target\bee-1.0-SNAPSHOT\WEB-INF\classes\res\images\users\111.jpg
Минусы:при перезаливке приложения, такие файлы все удаляться. Во-вторых такой путь в БД не запишешь, так как в src это не пойдет(нужен http формат)
<img src= "${POJO.ref_pic}" />


   private void saveImage(String filename, MultipartFile image,
                           HttpServletRequest request)
            throws ImageUploadException, IOException {

        ServletContext sc = request.getSession().getServletContext();
        String rootPath = getApplicationPath(sc);   //путь До папки с приложением
        String pathInnerInApplication = "WEB-INF" + File.separator +
                "classes" + File.separator + "res" + File.separator + "images" +
                File.separator +"users" + File.separator;

        String pathToImages = rootPath + pathInnerInApplication;
        File file = new File(pathToImages + image.getOriginalFilename());
        try {
            FileUtils.writeByteArrayToFile(file, image.getBytes());
        } catch (IOException e) {
            throw new ImageUploadException("Unable to save image", e);
        }

        // в БД записать String - (pathToImages + image.getOriginalFilename())
    }

Кунг-фу принцип: не сталкиваться лоб в лоб с внешними силами,а прогнуться под их давлением с тем, чтобы, разогнувшись, стать еще сильнее.
 
 
Сообщения:9476
Несколько способов:
- Сохранять картинки в БД. Наверно самый простой способ, поддерживает простой бекап (вместе с бекапом самой БД), транзакционность. Однако может быть не самым производительным.
- Хранить картинки на машинке (для Docker контейнера нужно подключить volume на внешнюю файловую систему)
- Использовать Amazon инфраструктуру (что-то вроде такого,но сам я с этим не работал, деталей не знаю).
Изменен:27 ноя 2016 20:23
 
 
Сообщения:110
Староверъ:
Несколько способов:
- Сохранять картинки в БД. Наверно самый простой способ, поддерживает простой бекап (вместе с бекапом самой БД), транзакционность. Однако может быть не самым производительным.
- Хранить картинки на машинке (для Docker контейнера нужно подключить volume на внешнюю файловую систему)
- Использовать Amazon инфраструктуру (что-то вроде такого,но сам я с этим не работал, деталей не знаю).

Спасибо за Amazon, буду пробывать.

Кунг-фу принцип: не сталкиваться лоб в лоб с внешними силами,а прогнуться под их давлением с тем, чтобы, разогнувшись, стать еще сильнее.
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет