애플리케이션은 작업 파일을 어디에 저장해야 합니까?

애플리케이션은 작업 파일을 어디에 저장해야 합니까?

저는 스캔한 문서를 처리하는 GUI 애플리케이션을 디자인하고 있습니다. 저장/내보내기 전에 스캔을 조작할 수 있으므로 처리하는 동안 스캔한 각 페이지에 대한 데이터를 임시로 저장해야 합니다.

데이터의 양이 상당히 커서(보통 압축해도 100MB가 넘음) 메모리에 저장하는 것은 비현실적입니다. 많은 수의 페이지를 스캔하는 것도 작업량이 많기 때문에 시스템을 다시 시작한 후에도 응용 프로그램을 다시 열 수 있고 이전에 스캔한 데이터를 사용할 수 있도록 스캔 결과를 디스크의 "작업 영역"에 저장해야 합니다. 계속 거래하세요.

이 중요하지만 임시적인 데이터를 어디에 저장해야 할지 잘 모르겠습니다.

  • /tmp/앱을 종료했다가 다시 연 후에도 데이터가 유지되어야 하고, 다시 시작한 후에도 데이터가 유지되어야 하기 때문에 좋지 않습니다.
  • $HOME/.config/appname/저장된 구성 데이터가 아니기 때문에 정확하지 않습니다.
  • $HOME/.local/share/잘못된 이유XDG 사양이는 저장된 아이콘과 같은 항목을 덮어쓰고 /usr/share/"전역" 스캔에 넣지 않는 것이라고 말합니다 /usr/share/.
  • $HOME/.cache가깝지만 캐시된 데이터가 아니고, 100페이지를 스캔한 후 삭제하고 모든 것을 다시 스캔해야 한다면 사용자는 매우 짜증을 낼 것입니다.
  • $HOME/.local/lib/appname어떤 사양에도 나타나지 않지만 .local사용자 로컬( 사용 lib/var/lib/)을 의미하는 경우 괜찮을 수 있습니다. 컴퓨터에 대한 로컬을 의미하는 경우 사용자가 고속 스캐너를 사용하여 컴퓨터에 로그인하고 이 응용 프로그램으로 스캔한 다음 로그아웃한 다음 일반 PC에 로그인하고 응용 프로그램을 열 수 있어야 하므로 적절하지 않습니다. 무엇을 스캔하고 있는지 확인합니다. 즉, 데이터는 로그아웃 시 네트워크 전체에 유지되어야 하며 ~$HOME/.cache시스템 간에 공유할 필요가 없으므로 $HOME/.local그렇지 않을 수도 있습니다. 확실하지 않습니다.

그렇다면 이러한 종류의 데이터를 저장하기에 가장 적절한 장소에 대한 제안이 있으신가요?

편집: 명확히 하기 위해 이것은 사용자별 데이터이고 앱은 일반 사용자로 실행되므로 이를 입력하는 것이 /var/정확하지 않을 수 있습니다. 그러면 거기에 쓰기 액세스가 없다는 점을 제외하고 앱을 실행하는 여러 사용자를 처리해야 하기 때문입니다. 일반 사용자 외.

답변1

나는 다른 곳에서 데이터를 가져온 다음 2~7개의 데이터 파일을 처리하여 CSV 파일, PDF 보고서 및 (선택한 경우) 다른 많은 보고서 형식을 생성하는 GUI 응용 프로그램(wxPython 사용)을 가지고 있습니다. 소스 데이터 파일(보관될 때까지)과 보고서를 $HOME/Documents의 디렉터리 구조에 저장합니다. 이것은 잘 작동하지만 디렉토리 이름을 생성할 때 주의를 기울이고 qwerty, fred1, abc123 등과 같은 이름을 지정하지 않도록 사용자에게 강조해야 합니다.

답변2

나는 opt내 응용 프로그램 이름 아래에 하위 디렉터리를 만들고 내 응용 프로그램에서 사용하는 임시 파일과 보조 파일을 해당 하위 디렉터리 아래에 두곤 했습니다.

관련 정보