У меня есть небольшое приложение REST, которое представляет собой телефонную книгу с фотографиями пользователей. Он запрашивает базу данных около 5000 пользователей, до сих пор только 2-300 из них имеют изображения, поэтому у меня есть изображение по умолчанию, которое я использую в других случаях.
В моем классе ImageHandler у меня есть процедура, которая кодирует это изображение по умолчанию.
Теперь я хочу знать довольно общее: лучше ли сохранять стандартное изображение base64, закодированное как stati c Строка в классе (поэтому, кодируйте его, как только приложение запустится). Или не сохранять его в виде строки и кодировать его из изображения (png; 4 КБ) каждый раз, когда его запрашивают?
Это приложение написано на Java / Spring, но я также рад за некоторые языковые спецификации c input.
Неужели это только вопрос времени перезагрузки или использования памяти?
public static String encode(String imagePath) {
if (!STANDARD_USER_IMAGE_BASE64.isEmpty()) {
return STANDARD_USER_IMAGE_BASE64;
}
String base64Image = "";
File file = new File(imagePath);
try (FileInputStream imageInFile = new FileInputStream(file)) {
// Reading a Image file from file system
byte imageData[] = new byte[(int) file.length()];
imageInFile.read(imageData);
STANDARD_USER_IMAGE_BASE64 = Base64.getEncoder().encodeToString(imageData);
} catch (FileNotFoundException e) {
System.out.println("Image not found" + e);
} catch (IOException ioe) {
System.out.println("Exception while reading the Image " + ioe);
}
return STANDARD_USER_IMAGE_BASE64;
}