public DocumentMetadataDto put()

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();
  }