ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • python pdf reportlab과 Blob URL
    IT 2024. 8. 13. 17:45

    프로젝트를 진행하며 백엔드에서 데이터 기반으로 PDF 파일 직접 만들어서 보여줄 일이 생겼다.

    PDF 파일은 생성 후 AWS에 저장하여 보여주는 것이 아닌 바뀐 정보도 바로바로 반영되서 보여줘야하기 때문에

    저장하지 않고, 테이블에 대한 데이터 기반으로 실시간으로 만들어서 보여준다.

     

    그래서 python의 pdf를 만들기 위해 reportlab이라는 package를 사용했다. (매우 유용)

    노다가 작업을 통해 정상적으로 만들었지만 한가지 문제가 발생한다.

    그 문제는 api를 통해 pdf를 chrome browser에서 열었지만 다운로드할 때,

    파일명이 999d8c08-dd53-4a2e-9c25-dc2358a24c6a 이렇고

    url은 blob:https/my_domain/999d8c08-dd53-4a2e-9c25-dc2358a24c6a 이렇다

    확인할 수 있듯이. url 뒤쪽이 파일명이 되는 것이다.

    여기서 blob이 뭐지? blob이 뭔지 찾아보니, Binary Large Objects의 약자로 '대용량 바이너리 객체'라고 한다.

    이름 그대로 이미지, 동영상 등 단순 텍스트 데이터가 아닌 바이너리 데이터를 담을 수 있는 객체이다.

     

     

    이것을 변경하기 위해서 코드에 다음과 같이 추가했는데,

    response['Content-Disposition'] = (
                    f'inline; filename="{file_name}.pdf"'
                )

    전혀 되지 않았음..

    다운로드 할 수 있는 방식으로도 했는데 되지 않음..

    이후 여러가지 방법을 해보았지만 백엔드에서 해결할 방법이 나오질 아나아나아나

     

    찾아보니 blob 객체를 생성하고 접근 방법 중 URL로 접근이 가능한데, 이 URL는 원하는대로 변경할 수 가 없다고 한다.!!!

    물론 원하는 이름으로 서버에 저장해서 보여주는 방식이 있는데, 이것은 우리가 원하는 방식이 아니다.!!!!!

     

    오카지...?

     

    방법을 변경할 수 밖에 없다.

     

     

Designed by Tistory.