proton-drive-linux-fs
A FUSE 가상 파일 시스템으로, Proton Drive를 리눅스 환경의 로컬 폴더처럼 마운트합니다.
기능 (What it does)
이 패키지는 사용자가 지정한 디렉터리에 Proton Drive를 마운트합니다. 모든 파일과 폴더는 Proton의 메타데이터에서 직접 목록화됩니다. 하지만 모든 파일의 내용물을 다운로드하지 않으며, 대신 파일을 읽을 때(on demand) 필요한 시점에만 다운로드합니다. 이는 대역폭과 디스크 공간을 절약하는 '지연 로딩(lazy)' 방식입니다. Google Drive, Dropbox, OneDrive 등과 유사합니다.
원격 변경 사항은 Proton의 이벤트 피드를 통해 마운트로 전달되며, 이로 인해 영향을 받은 디렉터리 목록 및 캐시된 파일 내용이 무효화됩니다. 쓰기 작업(Writes)은 로컬 임시 파일에 버퍼링되었다가, 파일이 닫힐 때 설정된 시간 초과(timeout)에 맞춰 Proton으로 전체 업로드됩니다.
상태 (Status)
본 프로젝트는 초기 단계이며 비공식적입니다. Proton AG와 제휴하거나 보증받거나 지원받지 않습니다.
저는 읽기, 쓰기, 생성, 삭제, 이름 변경, 이동 작업 등 가장 일반적인 경로를 하나의 Proton Drive 공유 폴더에 대해 테스트했습니다. 하지만 사용자마다 설정이 다르므로 모든 경우를 테스트할 수는 없습니다.
버그가 있을 수 있으니, 이슈 트래커(issue tracker)에 보고해 주십시오.
빠른 시작 (Quick start)
전체 복사-붙여넣기 흐름은 'Quick start' 섹션을 참고하십시오.
구성 요소 (Components)
사용자 애플리케이션이 Proton과 직접 통신하지 않습니다. 읽기와 쓰기는 커널의 FUSE 레이어를 거쳐 마운트 데몬(mount daemon)으로 전달되며, 이 데몬만이 Proton의 API와 통신하는 유일한 부분입니다. 따라서 모든 통신은 자격 증명이나 데이터가 유출되는 것을 방지하기 위해 이 레이어에 격리됩니다.
트레이(tray), 그리고 향후 개발될 기능들(아마도 GUI)은 동일한 데몬과 로컬 unix 소켓을 통해 통신하며, 소켓이 사용 불가능할 경우 상태 파일(status file)로 폴백합니다. 이상적으로는 어떤 일이 발생하더라도 계속 작동하도록 설계되었습니다.