PDF를 데이터베이스 나 파일 시스템에 저장하지 않고 동적으로 재현해야합니까?

StackOverflow https://stackoverflow.com/questions/227727

문제

고객은 PDF를 다운로드 할 수 있어야합니다.

나는 문서 나 이미지의 데이터베이스 대 파일 시스템 저장에 대한 스레드를 읽었으며, 몇 가지 이미지 이상의 경우 파일 시스템이 갈 길이라는 합의가 들립니다.

내가 알고 싶은 것 :

  • 합리적인 대안이 데이터베이스에 문자 세부 정보를 저장하고 요청 될 때 '즉시'PDF를 재현하는 것입니까?
  • 그 접근법이 파일 시스템에서 PDF를 가져 오는 것보다 우수하거나 열등합니까?
도움이 되었습니까?

해결책

두 가지 이유로 저장했습니다

1) PDF 생성 방식을 바꾸면 역사적 항목이 바뀌기를 원하지 않을 것입니다. 매번 생성하는 경우 변경되거나 "구식"레코드를 생성하려면 호환성 코드를 유지해야합니다.

2) 디스크 공간은 저렴합니다. 사용자의 인내심은 아닙니다. 저장소 또는 저장소를 꺼내는 것이 실제로 PDF를 생성하는 것보다 더 어렵지 않으면 사용자에게 친절하고 저장하십시오.

분명히 스파 스 데이터 세트에서 한 시간을 생성하면 스토리지가 없을 수 있습니다. 그러나 당신이 공간이 있다면, 나는 "사용"에 투표 할 것입니다.

다른 팁

아카이브 목적이라면 PDF를 저장할 것입니다. 앞으로 PDF 생성 스크립트가 변경 될 수 있고 편지는 원래 전송 된 것과 정확히 같지 않기 때문입니다. 고객은 정확히 동일 할 것으로 기대할 것입니다.

어떤 접근법이 우수한지는 중요하지 않으며 때로는 어떤 접근 방식이 더 안전한 지에 대한 것이 좋습니다.

고객에게 전송 된 서신의 기록을 유지 해야하는 법의학적인 이유가 있습니까? 당신이 즉시 재생하려는 경우, 향후 코드 변경이 서신을 다시 작성하지 않을 것이라는 것을 어떻게 알 수 있습니까?

나는 "그것이 의존한다"고 말하는 경향이있다.

하나의 문서가 여러 번 요청되면 첫 번째 요청에 따라 문서를 작성하고이를 후속으로 검색하면 저축 될 수 있습니다.

OTOH 문서에 대한 대부분의 요청이 정당한 유형의 유형이고 생성 프로세스가 대부분의 서버 용량을 섭취하지 않으면 현장에서 분명한 이점이 있습니다.

ASP.NET을 사용하는 경우 PDF를 캐시하지 않겠습니까? 먼저 필요할 수있는 한 메모리를 좋아하거나 남겨두면 캐시를 데이터베이스에 저장할 수 있습니다. 그만큼 엔터프라이즈 라이브러리 캐싱 애플리케이션 블록에서 이것을 구현하면 사용하기가 매우 간단합니다. 객체를 캐시하는 경우 블록을 사용하여 데이터베이스에 스토리지를 작성한 다음 필요할 때로드하면 다시 제작하는 것에 대해 걱정할 필요가 없습니다.

고려해야 할 사항은 거의 없으며 PDF는 어느 시점에서 존재했던 데이터를 기반으로 생성하는 것입니다. 예를 들어 이전 달의 데이터를 기반으로하는 청구서?

그렇다면 매달 동일한 템플릿을 사용 하여이 편지를 생성 하시겠습니까? 문자 형식이 변경되면 어떻게 되는가, 즉, 즉시 재생되면 더 이상 그들에게 전송 된 것과 동일하지 않습니다. PDF 스트림을 데이터베이스에 저장하는 것이 가능합니까?

내가 얻는 것이 무엇인지, 사용자에게 전송 된 내용을 정확하게 표현해야합니까, 아니면 유연한가요?

PDF를 동적으로 생성 할 것인지 또는 정적으로 저장할지에 대한 문제는 프로그래밍 문제보다 법의 문제처럼 들립니다.

이에 대한 지침을 제공 할 수있는 법률 고문에 접근 할 수 없다면주의를 기울이고 정적으로 저장하는 것이 훨씬 안전해질 것입니다.

길이 PDF 문서는 영구적 인 특성입니다 (작업 문서 일뿐 만 아니라 공식적인 서명 및 회사 외부 또는 회사 외부의 다른 곳에서 보낸 것), 네트워크 에이 PDF 파일의 사본과 데이터베이스 의이 파일에 대한 링크가 있어야합니다.

사용 가능한 데이터에 의존하여 주로 다른 시간에 동일한 문서를 재현 할 수 없습니다.

  1. 데이터가 변경 될 수 있습니다 (예! 서신이 부서장이 서명하고 직원이 변경되었다고 가정 해 봅시다.)
  2. 보고서 형식이 변경됩니다 (헤더, 바닥 글, 로고 등)
  3. 당신이 생성 한 문서는 문서에서 사용 가능한 데이터를 활용할 다른 사람이 보관합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top