Я создаю приложение с пружинной загрузкой, где я делаю OCR изображения. Мой запрос запрашивает составной файл. Когда я получаю многокомпонентный файл, мне нужно знать, обработал ли я то же изображение.
Я создаю MultipartEntity и ha sh того же самого. Я верил, что в следующий раз, если тот же файл придет. Я смогу создать ха sh и сравнить его.
Когда я пытаюсь это сделать. Я считаю, что его ха sh всегда отличается. Есть ли способ, которым я могу определить, что это изображение было ранее OCR, так что только на основе ha sh я получу результаты.
Request params as file in request:-
@RequestParam("file") MultipartFile file
Вот как я пытался создать ха sh:
FileBody fileBody = new FileBody(new File(fileName));
MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.STRICT);
multipartEntity.addPart("file", fileBody);
String requestBodyHash = PanUtil.getHashFromRequestBody(multipartEntity.toString());
public static String getHashFromRequestBody(String req) {
String requestBodyHash = null;
try {
requestBodyHash = generateSha2FromPayload(req);
} catch (NoSuchAlgorithmException | URISyntaxException e) {
log.error("Exception occured while creating hash from request {}", e);
throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, e.getMessage());
}
return requestBodyHash;
}
public static String generateSha2FromPayload(String json)
throws URISyntaxException, NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] digest = md.digest(json.getBytes(StandardCharsets.UTF_8));
return toHexString(digest);
}