This is a pCloud client written in Go for cross-platform compatibility, such as a Raspberry Pi in my use-case.
NOTE: I'm not affiliated to pCloud so this project is as good or as bad as it gets.
For a pCloud client for Linux and FreeBSD, see pcloud-drive.
See SDK.
See Tracker.
See Sync.
The original driver for this project is to create a pCloud client for my Raspberry Pi4.
While pCloud's console client seemed to tick the boxes, I wasn't able to use it for two reasons:
- it creates a virtual drive - files are not stored on my local storage as I require. In my set-up, cloud storage is a convenience (backup and remote access), not an extension / replacement of my local storage.
- I elected to create a mirror from the pCloud virtual drive (that the console-client creates) to my local storage. While this would work well for my needs (using pCloud as the primary source of truth, and the mirror as a local replica), I found that both
rsync
andunison
were confronted to an I/O deadlock when downloading data. The console-client appears to have an issue in its internal cache management and that blocks all I/O. Recovery involves restarting the pCloud console-client daemon but the story repeats again and the mirror cannot complete.
-
✅ implement a Go version of the SDK.
-
🧑💻 FUSE integration (Linux / FreeBSD) - move to separate repo - pcloud-drive
-
implement a sync command.
-
CLI for basic pCloud interactions (copy, move, etc)
The official pCloud API is documented at: