У меня есть приложение Spring MVC с AngularJS. Для интерфейсов, развернутых на AWS Elastic Beanstalk.Приложение Spring MVC Хранилище изображений
Я Занесение изображений путем создания каталога в приложении пример:
@RequestMapping(value="/upload_image", method=RequestMethod.POST)
public @ResponseBody JsonResponse handleFileUpload(@RequestParam("file") MultipartFile file, @RequestParam("filename") String filename){
if (!file.isEmpty()) {
try {
String orgName =file.getOriginalFilename();
String filePath = "img_temp";
File dir = new File(filePath);
if (!dir.exists())
dir.mkdirs();
File serverFile = new File(dir.getAbsolutePath() + File.separator + orgName);
//Format check
if(!IsImage(serverFile)) {return new JsonResponse("FAIL","Is not an image: "+orgName);}
//Upload
try {
file.transferTo(serverFile);
} catch (IllegalStateException e) {
e.printStackTrace();
return new JsonResponse("FAIL","File uploaded failed: "+orgName);
}
catch (IOException e) {
e.printStackTrace();
return new JsonResponse("FAIL","File uploaded failed: "+orgName);
}
//Success
return new JsonResponse("OK","");
} catch (Exception e) {
return new JsonResponse("FAIL","File uploaded failed: "+file.getName() + " => " + e.getMessage());
}
} else {
return new JsonResponse("FAIL","File uploaded failed: "+ file.getName() + " because the file was empty.");
}
}
Приложение является своего рода объявлений. Есть 2 Основное использование для хранения изображений: изображения для элементов (публично доступны) и изображений для временных элементов (не государственные, но и не нуждаются в какой-либо специальной защиты)
Проблема: Это стало ясно, что этот способ хранения изображений очень неустойчив. Первая проблема - каждый раз, когда я развертываю .war-файл своего приложения, мне приходится вручную создавать резервные копии изображений, а затем копировать их в развернутое приложение. Сегодня случилось так, что из-за высокой нагрузки экзистенциальный экземпляр beanstalk был прерван и создан новый. Все изображения потеряны. Так что определенно нужно иметь дело с этим.
Вопрос:
Что такое животное способ справиться с хранения изображений?
Я думал об Amazon S3. Но тогда проблема в том, что это будет сложно отлаживать, потому что весь код будет основан на взаимодействии с локальной средой AWS, поэтому я не могу отлаживать ее на своей локальной машине. Любое решение для этого может быть? S3 кажется хорошим вариантом, если не этим.
Другие небольшие суб-вопрос: На данный момент, это алгоритм, как изображения будут загружены: На размещение формы, есть кнопка, чтобы выбрать изображение. после выбора изображения он отправляется на контроллер /upload_image
и загружается в папку temp. Затем, как только пользователь отправит окончательный запрос, изображение переместилось с img_temp
на images/*created_item_id*
Правильно ли это обработать этот процесс?
Когда вы используете S3, почему это будет трудно отлаживать? Я не понял, с какими проблемами вы столкнетесь? – error2007s
, что я не могу отладить его на моем локальном компьютере – user1935987
Да, вы можете отлаживать его на своем локальном компьютере. Вы должны добавить AWS SDK в свой проект, создать класс, который будет обрабатывать загрузку изображений в AWS S3. Этот класс - это тот, который вы собираетесь отлаживать. –