웹한글 기안기 저장 관련 문의 입니다.

현재 저희 시스템은

(그림 1)
이중화 된 Web서버에 기안기가 각각 설치되어 있고
이중화 된 WAS서버 2대와 연결된 1개의 NAS서버에
사용자가 작성한 한글 파일을 저장하고 있습니다.

  1. HWPX 저장관련 문의

저장시 GetTextFile의 format을 HWP를 사용하여 Base64로 변환하고
Base64를 다시 “파일명.hwpx” 파일로 저장 하고 있습니다.

그러나 그렇게 만들어진 파일은 완전한 HWPX 파일이 아니고
압축프로그램을 이용해서 열어보면 HWP파일 형식으로 확인됩니다.

(그림 2)

혹시 GetTextFile의 format이 HWP라서 그런것이 아닐까 의문이 들어 HWPML2X으로도 변경 해 보아도
동일하게 HWP파일 형식으로 나옵니다.

또한 GetTextFile을 사용하여 Base64를 전송하려고 하니 몇몇 사용자의 보안장비에서 Base64를 차단하는 문제가 발생 하기도 하고
파일 명은 hwpx지만 HWPX 파일형식이 아닌것으로 체크가 되어 정상적으로 사용할 수 없는 경우도 있었습니다.

기안기 설치시 전달 받은 API가이드에
Save의 내용은 존재하지 않고 SaveAs, SaveDocument 등 저장하는 API를 여러가지 찾아 보았지만
설명이 매우 부실하여 사용을 하면서도 이게 정상적으로 사용 하는것인가 싶은것들이 많았고
부실한 대로 API가이드를 따라 SaveAs도 사용 해 보고 SaveDocument도 사용 해 보았지만
생각대로 NAS에 저장되지 않았습니다.

  1. 저장시 오류 문제

(그림 3)
GetTextFile의 format을 HWP를 사용하여 Base64로 변환후 파일로 저장시
“서버오류가 발생하였습니다 ErrorCode 1011
오류가 발생하여 페이지를 표시할 수 없습니다.”
라는 메시지로 저장이 되는 경우가 종종 발생합니다.

임시 저장 폴더가 Web서버에 각각 존재 하고 있어
저장시 로드밸런싱으로 다른 웹서버에 연결되어 이런 현상이 발생 한 것이 아닐까 예상하고 있습니다.

  1. 이미지를 첨부하여 저장 후 다시 파일을 불러올 시 이미지가 정상적으로 표시되지 않는 문제

(그림 4)

해당 오류는 웹 브라우저 개발자 도구의 Network 에서 blob로 확인 한 결과
type이 bmp, png 등으로 나와야 할 이미지가 text/html로 나오게 됩니다.
기안기 상 에서는 이미지가 아닌것으로 여겨 이미지가 정상적으로 표시가 되지 않는 현상입니다.

이미지를 확인 해 보시면 불러올때마다 매우 운좋게 다 불러 오는 경우도 있고
이미지 표시가 무작위하게 일어납니다.

신규회원은 이미지가 하나만 저장 된다고 하여 통합 하였습니다.

상기 3가지 문제에 대한 원인과 해결 방안을 부탁드립니다.
감사합니다.

1개의 좋아요
  1. HWPX 저장 관련
  • 파일 저장을 위해서는 SaveAs API 를 사용하시면 됩니다.
    API 호출시 format 인자에 “HWPX” 로 설정하면 HWPX 포맷으로 저장됩니다.
    HwpCtrl.SaveAs(fileName, format, arg, callback, callbackUserData)
    함수를 호출하면 저장 완료 후 callback 함수가 호출되고 callback 인자로 아래와 같은 결과 object 가 전달됩니다.
    {
      downloadName: "test.hwp",
      downloadUrl: "https://webhwpctrl.cloud.hancom.com/webhwpctrl/get/15DD6955-C97E-411D-B179-EB1C231A8392/dd01edb7-1975-4a18-8bfd-c8641cc13011.hwp",
      fileName: "dd01edb7-1975-4a18-8bfd-c8641cc13011.hwp",
      result: true,
      resultCode: 0,
      size: 20992,
      uniqueId: "15DD6955-C97E-411D-B179-EB1C231A8392"
    }
    
    downloadUrl 을 활용하여 파일을 다운받을 수 있고,
    서버상에서 활용하려면 fileName, uniqueId 값을 활용하여 서버의 저장 위치를 확인 할 수 있습니다.
    웹한글 기안기 설정의 savePath + uniqueId + fileName 이 서버상의 저장 경로가 됩니다.

2, 3 번 이슈는 LB 사용으로 인한 스위칭 문제일것 같습니다.

  • 웹한글 기안기 설정시 savePath, uploadPath, tempPath 경로를 모든 서버가 접근할 수 있는 NAS에 설정해두면 해결될것 같습니다.

확인해보시고, 더 문의하실 내용이 있으면 댓글 부탁드립니다.
감사합니다.

참고해서 수정 해 보겠습니다.
감사합니다.

웹한글 기안기 설정시 savePath를 어떻게 확인할 수 있나요?

웹한글기안기의 설정파일(config.properties)에서 지정할 수 있습니다.

uploadPath=사용자가 지정할 업로드 경로. ex) /home/userid/webhwpctrl/upload
savePath=사용자가 지정할 저장 경로
tempPath=사용자가 지정할 임시파일 생성경로

설정파일은 일반적으로 ~/.webhwpctrl/conf/ 경로 밑에 존재합니다.