圖:pcloud.com 活動截圖
接著再來講講在 Linux/Ubuntu server 把 pCloud 網路空間用網芳的機制掛在進來,實作上是用 Filesystem in Userspace (FUSE) 機制。我在 Ubuntu 18.04 上,原本要安裝特定環境,但踩到 libudev-dev 安裝上的套件限制,想著想就改用 docker 來跑:
$ sudo docker run -i -t --privileged ubuntu:22.04
root@109661692d2c:/#
# uname -a
Linux 109661692d2c 5.4.0-1082-oracle #90~18.04.1-Ubuntu SMP Mon Aug 15 16:42:41 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
# apt update
# apt-get install cmake zlib1g-dev libboost-system-dev libboost-program-options-dev libpthread-stubs0-dev libfuse-dev libudev-dev fuse build-essential git
# cd ./console-client/pCloudCC/lib/pclsync/
# make clean && make fs
# cd ../mbedtls/ && cmake . && make clean && make
# cd ../.. && cmake . && make && make install
# ldconfig
# which pcloudcc
/usr/local/bin/pcloudcc
# pcloudcc
pCloud console client v.2.0.1
Username option is required!!!
以上就是編譯出 pCloud - pcloudcc 指令的過程,接著使用時,在 docker 裡可以靠 tmux or screen 來切換,在此用 screen (因為我已經先用 tmux 包一層 XD)
# apt install screen
# screen
screen 1# pcloudcc -u YourpCloudAccount
pCloud console client v.2.0.1
Down: Everything Downloaded| Up: Everything Uploaded, status is LOGIN_REQUIRED
Please, enter password
logging in
Down: Everything Downloaded| Up: Everything Uploaded, status is CONNECTING
Down: Everything Downloaded| Up: Everything Uploaded, status is SCANNING
Down: Everything Downloaded| Up: Everything Uploaded, status is READY
如此,接著可以靠 screen 切另一個視窗
screen 2# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 45G 38G 7.7G 84% /
tmpfs 64M 0 64M 0% /dev
tmpfs 487M 0 487M 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
pCloud.fs 500G 7.3G 493G 2% /pcloud
screen 2# tree /pcloud/
/pcloud/
|-- Getting\ started\ with\ pCloud.pdf
|-- My\ Music
| |-- Demo\ Audio\ 2.mp3
| |-- GotJoy.mp3
| |-- Lovely\ Day.wav
| `-- Momentum.mp3
|-- My\ Pictures
| |-- friends.jpg
| |-- happy-family.jpg
| |-- in-the-sky.jpg
| |-- lovers.jpg
| |-- romance.jpg
| `-- sweet.jpg
`-- My\ Videos
`-- pCloud.mp4
3 directories, 12 files
最後,如果要打包目前 docker 的環境,要回到 host 上進行 commit :
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
123456789012 ubuntu:22.04 "bash" 25 minutes ago Up 25 minutes eager_bardeen
$ sudo docker commit 123456789012 pcloudcc:1.0
sha256:daf74928ed5ef2ee7c8d158ecf066d2b0707a9c145df4829488e01bf3bda751b
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
pcloudcc 1.0 daf74928ed5e 43 seconds ago 769MB
下次要使用時,再進入,可以省去重裝一堆東西:
$ sudo docker run -i -t --privileged pcloudcc:1.0
root@06bbad280e77:/#
另外,若想跟 host 環境做綁定,可以用 sudo docker run -i -t --privileged -v ~/my_host_dir:/vm_dir cloudcc:1.0,把 host 端的目錄掛載進去 docker vm 中,可以在靠 rsync 等指令把檔案傳到 pCloud 空間上!在 Oracle VM - JP Region 上,上傳到 pCloud US region 的速度可以來到均速 20MB/s 上喔,算是非常不錯的品質
此外,pCloud 採用類似網芳方式 mount 進來使用,對於這些虛擬機器只有 20GB, 40GB 來說,可以瞬間擴大到 500GB 等空間,很舒服 XD 且不像使用 Dropbox 機制,佔用到本機空間的。
最後,補充一下關於 docker 使用,由於 pcloudcc 會使用 fuse 環境,因此要求更高權限:特權容器 (privileged container) ,這件事是有風險的,當 docker 裡頭運行的程式被黑了,有可能傷及到 host 環境,但無論如何,在 host 安裝環境本來也會有風險沒錯 XD 就留意一下即可
以上體驗後,再自行評估要不要拿來當虛擬機的備份用法囉!