2012-05-25 5 views
2

Google 드라이브 용 FUSE 드라이버를 구현 중입니다. 목표는 사용자가 Google 드라이브/문서 도구 계정을 가상 파일 시스템으로 마운트하도록 허용하는 것입니다. 전체 소스는 https://github.com/jforberg/drivefs입니다. fusepy 바인딩을 사용하여 FUSE를 Python에 통합하고 Google의 Document List API를 사용하여 드라이브에 액세스합니다.파일 탐색기 미니 읽기 제한

내 드라이버는 readdir (2), stat (2) 및 read (2)가 예상대로 작동하는 정도로 완료되었습니다. 파일 시스템에서 읽은 각 파일은 큰 오버 헤드가있는 HTTPS 요청으로 변환됩니다. 나는 읽기에 더 큰 버퍼 크기를 강요함으로써 오버 헤드를 제한 할 수 있었다.

내 문제가 있습니다. Thunar 및 Nautilus와 같은 파일 탐색기는 엄지 손가락을 만들고 각 파일의 첫 번째 부분 (처음 4KB 정도)을 읽어 파일 유형을 결정합니다. 그러나 필자의 파일 시스템에서 한 번에 많은 파일을 읽는 것은 힘든 절차이며, thunar에 파일 목록을 가져 오는 작업은 단지 ls (각 파일의 stat (2)에만 해당)과 비교할 때 매우 오랜 시간이 걸립니다.

필자의 파일 시스템이 "미니 읽기"또는이 미니 읽기를 식별하고 작성된 데이터를 제공하여이를 행복하게 해주는 어떤 방법으로는 잘 작동하지 않는다는 것을 파일 탐색기에 알리는 방법이 필요합니다. 어떤 도움을 주시면 감사하겠습니다!

EDIT : 문제는 HTTPS 오버 헤드가 아니지만 Google 고유 "doc"형식을 사용하고 있습니다. 누군가가 네이티브 문서를 읽으려고 할 때 read (2)가 빈 문자열을 반환하도록 라인을 추가했는데 파일 목록이 거의 즉시 나타납니다.

Google의 공식 클라이언트 프로그램이 기본 문서를 편집 할 수 없기 때문에 이것은 약간의 제한으로 보입니다. 여기

답변

2

비슷한 시도 pycloudfuse하지만 당신이 유용한 비트를 찾을 수있는 클라우드 파일/OpenStack은 객체 저장합니다.

이를 쓸 때 나는이 함께하는 Thunar와 노틸러스에 문제를 발견 말할 수 없다 디렉토리 목록.

데이터를 구성하는 파일 관리자에게 문제를 일으킬 수있는 피드를 제공 할 수 있다고 생각하지 않습니다.

파일 탐색기에 미리보기 이미지 등을 보내지 말라고 신호를 보내는 것이 좋지만 가능하지는 않습니다.

나는 최상의 옵션이 사용자에게 drivefs이 실제 파일 시스템이 아니며 그 제한 사항 목록을 알려주고 있으며 pycloudfuse과 같은 것이라면 사용자에게 상기시킬 것입니다.

+0

감사합니다. 나는 그것을 확실히 읽을 것입니다. 나는 또한 sshfs와 curlftpfs와 같은 일반적인 솔루션이 이미이 문제를 해결 했음에 틀림 없다는 것을 알고 있지만, 나는 소스를 만들기에 충분할 정도로 C를 말하지 않는다. – jforberg