2012-05-25 36 views
2

我正在實施Google Drive的FUSE驅動程序。其目的是讓用戶將其Google Drive/Docs帳戶安裝爲虛擬文件系統。完整資料來源於https://github.com/jforberg/drivefs。我使用fusepy綁定將FUSE與Python集成,並使用Google的Document List API訪問Drive。限制文件資源管理器迷你讀取

我的驅動程序完成程度readdir(2),stat(2)和read(2)按預期工作。在文件系統中,每個文件讀取轉換爲HTTPS請求,其開銷較大。我設法通過強制讀取更大的緩衝區大小來限制開銷。

現在我的問題。 Thunar和Nautilus等文件探索者通過閱讀每個文件的第一部分(第一個4k字節左右)來構建大拇指並確定文件類型。但是在我的文件系統中,一次讀取多個文件是一個痛苦的過程,與簡單的ls(其中每個文件只有stat(2))相比,在thunar中獲取文件列表需要很長時間。

我需要某種方式告訴文件瀏覽者我的文件系統不能很好地與「迷你閱讀」配合使用,或者通過某種方式來識別這些迷你閱讀併爲他們提供補充數據以使他們滿意。任何幫助,將不勝感激!

編輯:問題不在於HTTPS開銷,而在於我處理Google的原生「doc」格式。我添加了一行以使read(2)在有人嘗試讀取本機文檔時返回空字符串,並且文件列表現在幾乎是瞬時的。

這似乎是一個溫和的限制,因爲即使Google的官方客戶端程序也不能編輯本機文檔。

回答

2

這裏是pycloudfuse這是一個類似的嘗試,但對於雲文件/ OpenStack對象存儲,你可能在發現有用位。

當寫這個我不能說,我注意到的thunar和Nautilus任何問題與目錄列表。

我不認爲你可以提供數據文件管理器 - 這必然會導致問題。

我喜歡的選擇是向文件資源管理器發信號,不要做縮略圖等,但我不認爲這是可能的。

我認爲最好的選擇是提醒你的用戶,drivefs不是一個真正的文件系統,並給出了它的限制列表,如果它是像pycloudfuse這樣的東西會有很多!

+0

謝謝!我一定會讀到。我也意識到像sshfs和curlftpfs這樣的常見解決方案必須已經解決了這個問題,但是我沒有足夠的C來解決它們的問題。 – jforberg