mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
feat(fuse,core,cli,gui): make folders available offline from the app
The daemon has kept recursive folder pins for a long time, but the app offered "Available offline" for files only. The context menu, the details pane and the selection bar now offer it for folders too, and a pinned folder carries the offline badge in the browser and the launcher. A folder pin used to download the whole subtree inside the control request, so a large folder outlasted the client's 120 s read timeout, and every pinned file was read into memory before it was cached. The daemon now records the pin, answers at once and downloads on a background thread as a job the tray and the app show, stopping when the folder is unpinned or the daemon stops. Pins of files and folders both go through fetch_content, which streams to disk and skips fresh blobs. A folder pin is refused while offline instead of looking kept. A file kept only because a folder above it is pinned has no pin of its own, and unpinning it silently did nothing. ListDir now reports pinned_by_folder; the app shows such an entry as available offline with the toggle greyed out, and the daemon refuses the unpin with a message naming the folder. Unpinning a folder no longer evicts files that are pinned on their own. Requested on Reddit.
This commit is contained in:
1 parent
e0442c56b9
commit
d481dcc15c
24 files changed
+3353
-2856
No files matched your search
+8
-5
@@ -44,7 +44,7 @@ The app uses these words consistently, and so does this guide:
|
||||
| **My files** | The root of your Drive |
|
||||
| **Proton Drive folder** | Where My files appears on disk, `~/ProtonDrive` by default |
|
||||
| **Online only** | A file or folder whose content downloads when opened |
|
||||
| **Available offline** | A single file kept on this computer |
|
||||
| **Available offline** | A file, or a folder with everything in it, kept on this computer |
|
||||
| **Synced folder** | A local folder with a full copy on this computer, backed up to Proton Drive |
|
||||
| **Proton Drive service** | The background service (`proton-drive.service`) |
|
||||
|
||||
@@ -75,11 +75,14 @@ try to create them get a clean error, not a hang or `EIO`.
|
||||
|
||||
## Keeping files on this computer
|
||||
|
||||
Turn on **Make available offline** for a file in My files, or run `pdfs pin <path>`. The file is
|
||||
downloaded completely and never evicted from the cache. `pdfs pins` lists these files, and
|
||||
**Preferences → Storage → Available offline** shows them in the app.
|
||||
Turn on **Available offline** for a file or folder in My files, or run `pdfs pin <path>`. A file
|
||||
is downloaded completely and never evicted from the cache. For a folder, every file in it and in
|
||||
its subfolders downloads in the background, and the tray and the app show the progress.
|
||||
`pdfs pins` lists what is kept, and **Preferences → Storage → Available offline** shows it in the
|
||||
app.
|
||||
|
||||
Turning it off (`pdfs unpin <path>`) frees the space. The file stays on Proton Drive.
|
||||
Turning it off (`pdfs unpin <path>`) frees the space. The files stay on Proton Drive. A file inside
|
||||
a folder kept offline stays with its folder: turn the folder off instead.
|
||||
|
||||
## Syncing local folders
|
||||
|
||||
|
||||
Reference in new issue
Block a user