in digital-document-service/src/main/java/com/epam/digital/data/platform/dgtldcmnt/service/CephDocumentService.java [61:83]
public DocumentMetadataDto put(UploadDocumentFromUserFormDto uploadDocumentDto) {
var id = UUID.randomUUID().toString();
log.debug("Uploading file {}, id {}, rootProcessInstanceId {}, taskId {}",
uploadDocumentDto.getFilename(), id, uploadDocumentDto.getRootProcessInstanceId(),
uploadDocumentDto.getTaskId());
byte[] data = readBytes(uploadDocumentDto.getFileInputStream());
var sha256hex = DigestUtils.sha256Hex(data);
var fileMetadata = buildFileMetadata(id, sha256hex, uploadDocumentDto);
var fileDataDto = FileDataDto.builder().content(new ByteArrayInputStream(data))
.metadata(fileMetadata).build();
var savedFileMetadata = storage.save(uploadDocumentDto.getRootProcessInstanceId(), id,
fileDataDto);
var url = generateGetDocumentUrl(id, uploadDocumentDto);
log.debug("File {} uploaded. Id {}", uploadDocumentDto.getFilename(), id);
return DocumentMetadataDto.builder()
.size(savedFileMetadata.getContentLength())
.name(uploadDocumentDto.getFilename())
.type(savedFileMetadata.getContentType())
.checksum(sha256hex)
.url(url)
.id(id)
.build();
}