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의 공식 클라이언트 프로그램이 기본 문서를 편집 할 수 없기 때문에 이것은 약간의 제한으로 보입니다. 여기
감사합니다. 나는 그것을 확실히 읽을 것입니다. 나는 또한 sshfs와 curlftpfs와 같은 일반적인 솔루션이 이미이 문제를 해결 했음에 틀림 없다는 것을 알고 있지만, 나는 소스를 만들기에 충분할 정도로 C를 말하지 않는다. – jforberg