顯示具有 pCloud 標籤的文章。 顯示所有文章
顯示具有 pCloud 標籤的文章。 顯示所有文章

2023年3月29日 星期三

完整清除 Uninstall pCloud Drive app @ macOS 13.2.1


故事是這樣的,幾個月前實驗使用 Cryptomator + pCloud 備份,由於前者會將資料切個成常見的零碎的目錄結構,如果有檔案出現異常時,整個資料就無法讀取。

Error Code 4VHF:Q9JM:I1GP

最近 pCloud 很頻繁更新,再加上更新至 Cryptomator 1.7.3 ,很奇妙的,有一個高頻變動的目錄,開始出現無法讀取的現象。經過幾番追蹤後,確認是因為 Cryptomator + macFUSE 方案產生的現象,接著做檔案搬遷就會出錯,無論降低版本到 Cryptomator 1.6.17 還是升級 macFUSE 4.4.2,都沒法排除。

測試方式是建立新的加密庫,接著 rsync -avP 搬遷,皆會一陣子就出現 input/output error 。最後將 Cryptomator 更換成 WebDAV 模式後,才確定排除。且 Cryptomator 錯誤訊息介面可以快速跳到 github 4VHF:Q9JM:I1GP 相關討論區,也在講 macFUSE 的事情。排除問題後,就進入到這次的主題 pCloud app 的處理。

pCloud App Bug?沒有 synced folders 規則,還一直在同步

pCloud App Bug?沒有 synced folders 規則,添加時還顯示已在同步(已有規則)

重建完加密庫後,想要透過 pCloud app 同步資料時,發現整個 pCloud Drive app - macOS 進入到非常詭異的狀態,我只是把 pCloud app - Synced Folders 的目錄透過介面打 X 取消指定目錄同步,下一刻我發現本地的目錄被刪除了,對應的 pCloud 雲端上的資料也被刪除。這件事其實還滿嚴重的。

當初對 pCloud 的用法也是處於體驗,純粹當作另一處備份區,想說資料不見也沒差再重建就好。殊不知在本地重建時, pCloud app 一直還是不斷的 sync 指定目錄,且同步到 pCloud 的家目錄區(首頁),導致整個 pCloud 首頁大亂。

pCloud App Bug?同步上去都擺在家目錄,家目錄都亂了

我推論比較像 pCloud app 有問題,處理舊的同步規則時,似乎把所有東西都建立在 pCloud 家目錄,而非保有 Cryptomator 目錄結構:

% tree -L 2 My-Resource 
My-Resource 
├── d
│   ├── J2
│   └── XX
├── masterkey.cryptomator
├── masterkey.cryptomator.########.bkup
├── vault.cryptomator
├── vault.cryptomator.########.bkup
└── 重要.rtf

4 directories, 5 files

下一刻移除 pCloud 再重裝也是一樣,永遠都可以看到 pCloud app 很努力的在同步我剛在原處創建的 Cryptomator 加密庫,並且 pCloud 首頁永遠都是雜亂的 XD 

終於下定決心來找找,如何乾淨地移除 pCloud 設定檔,推論有一些 plist 紀錄著東西,也猜想 pCloud app 版本不同後,新舊版資料紀錄錯亂或是做了什麼相容架構,導致最新版刪不了舊版紀錄的資料,但又一直做相容架構,拿舊版的資料出來用。此時在新版 pCloud app 添加指定目錄同步時,會一直彈跳出不能重複設定的資訊(pCloud app UI 介面上可以看到,目前一條規則也沒有):Can not add new sync: Folder already syncing!

來個乾淨的刪除吧!

先把 pCloud app 從應用程式的目錄拖拉丟去垃圾桶:

% open /Applications 

接著檢查其他資料:

% sudo find /Library -iname "*pcloud*" 2>/dev/null
...
/Library/PrivilegedHelperTools/com.pcloud.pcloudfs.Mounter.Helper
/Library/Logs/DiagnosticReports/pCloud Drive_2023-##-##-#######_#####.diag
/Library/LaunchDaemons/com.pcloud.pcloudfs.Mounter.Helper.plist
...

% find ~/Library -iname "*pcloud*" 2>/dev/null
...
/Users/account/Library/WebKit/com.pcloud.pcloud.macos
/Users/account/Library/Preferences/com.pcloud.pcloud.macos.plist
/Users/account/Library/Application Scripts/com.pcloud.pcloud.macos.pCloudFinderExt
/Users/account/Library/HTTPStorages/com.pcloud.pcloud.macos.binarycookies
/Users/account/Library/Containers/com.pcloud.pcloud.macos.pCloudFinderExt
/Users/account/Library/Containers/com.pcloud.pcloud.macos.pCloudFinderExt/Data/Library/Application Scripts/com.pcloud.pcloud.macos.pCloudFinderExt
/Users/account/Library/Caches/com.pcloud.pcloud.macos

偷看 /Users/account/Library/Preferences/com.pcloud.pcloud.macos.plist 內容,他還記錄著 sync 目錄資訊。

最後就人工把以下的資料刪除:

/Library/PrivilegedHelperTools/com.pcloud.pcloudfs.Mounter.Helper
/Library/Logs/DiagnosticReports/pCloud Drive_2023-##-##-#######_#####.diag
/Library/LaunchDaemons/com.pcloud.pcloudfs.Mounter.Helper.plist
/Users/account/Library/WebKit/com.pcloud.pcloud.macos
/Users/account/Library/Application Scripts/com.pcloud.pcloud.macos.pCloudFinderExt
/Users/account/Library/HTTPStorages/com.pcloud.pcloud.macos.binarycookies
/Users/account/Library/Containers/com.pcloud.pcloud.macos.pCloudFinderExt
/Users/account/Library/Caches/com.pcloud.pcloud.macos
/Users/account/Library/Preferences/com.pcloud.pcloud.macos.plist

原本以為這樣就搞定了,殊不知裝完 pCloud app 啟動後,又發現繼續同步資料。最後想起一招:從 活動監視器 那邊看 pCloud app 開啟的檔案清單



就發現有一處是 ~/.pcloud ,把他刪掉後,終於正常了。

2022年12月6日 星期二

pCloud - 使用 Cryptomator 加密資料庫與 .davfs.tmp 檔案們 @ macOS

圖:macOS - pCloud app -> Settings

最近在自己的硬碟空間越來越少,感到納悶。我之前把 Cryptomator 內的資料庫,用 pCloud Sync 的方式出去,由於 Cryptomator 跟 pCloud PC app 都有一些跟 WebDav / FUSE 相關的技術,讓人很難確定這些 .davfs.tmp 到底是哪個程式在使用,最後透過使用空間來推估,應當是 Cryptomator 機會高一點。

接著著手來刪除 .davfs.tmp 檔案,清掉快百 GB 後,再次呼叫 pCloud Sync 時,可以看到 pCloud 使用空間有慢慢降低,最終可以驗證是 Cryptomator 採用的暫存檔案。

對 Cryptomator 來說,他提供 WebDav 跟 FUSE 的溝通機制,我恰好使用 FUSE 機制,忘了 FUSE 底層也是呼叫 API 做事,若 API service 剛好又是 WebDAV 時,就滿合理了。

最後,在 pCloud PC app 中的 Settings -> Backup/Sync Exclusions -> The following files will be excluded 區,多定義個 .davfs.tmp* 未來就不用太擔心了 pCloud 空間被吃掉,但依舊要記得,哪天覺得硬碟空間不足時,可以用 find 指令找一下

註:有人會靠 `% rclone -v --dry-run --include ".davfs.tmp*" delete /path/Cryptomator` 去刪檔案

2022年11月15日 星期二

pCloud - 使用 Cryptomator 加密資料與 PC app, NAS, Linux Server 管理筆記 @ macOS 13, Ubuntu 18.04, Synology DS216play

圖:Synology - Cloud Sync

大概幾年前起,一直以來都有在跑小程式撈資料,並使用 Dropbox 來共享資料並且備份。像 Dropbox 免費版有的 2GB,更早之前甚至加一位好友有 500MB 時期,甚至還有 edu 校園比賽等病毒行銷,可以輕鬆衝到 10GB, 20GB, 甚至30GB等,這個空間也滿夠用。

現況,則是來試試 pCloud 500GB 終身版,掏錢付費 XD 被推坑後,就開始想想這個空間該怎樣規劃。首先,先來試試 Cryptomator - cryptomator.org 開源的端加密工具!pCloud 本身也有這等檔案加密的付費服務。原理上是上傳前先加密,讓雲端空間服務商無法知道資料內容。而使用 Cryptomator 時,他是透過一個檔案庫概念(可以想像跟 git 底層儲存拆成數個檔案,屬於常見的資料儲存架構),透過 WebDav 或 FUSE 建立一個虛擬空間或目錄,把資料搬進去時,順便完成加密儲存。對終端用戶來說,大概會稍微感覺讀寫資料較慢,其餘感受還好。

整體上的體驗較慢時,通常是直接掛載 pCloud 網路硬碟才會感受到,若是純本地存取 Cryptomator 加密檔案庫時,應該都還能接受的。除非是在搞 build code 等大量零碎檔案、不停更動等,才會感到不堪使用。


圖:Cryptomator PC app

使用原理上,就是先建立個 Cryptomator 加密檔案庫,接著把此資料上傳到 pCloud 即可搞定。剩下的就是存取資料的問題規劃,屬於 pCloud 在各類系統的存取方式:
  • 在 macOS 上,直接安裝 pCloud 官方提供的 PC app 最方便
  • 在 Ubuntu 18.04 server 機器上,透過 github.com/pcloudcom/console-client ,可用指令完成掛載 pCloud 網路空間進來
  • 在 Synology NAS 上,透過 pCloud WebDav API 溝通方式,可靠 Cloud Sync 完成資料同步
如此可以達到 pCloud (雲端) 有一份資料、NAS (Synology) 內也有一份資料、Macbook Pro (masOS) 也有一份資料等,三處會透過 pCloud 雲服務機制同步中。此外,若跟 NAS 在同一個區網內,倒也可以考慮純靠 NAS 同步,再靠 Samba 把 NAS 的資料掛進來使用,如此 PC 不需要額外安裝 pCloud app 處理同步。

當然,若主力有 macOS + iCloud ,也可以替代掉 pCloud 角色,沒錯,只是 iCloud 2TB 而已,通常拿來備份無止盡的照片影片了。

存取 pCloud 用法:
  1. 使用 WebDav Protocol: https://webdav.pcloud.com ,使用時無法開啟兩段式登入(2FA)或簡訊驗證,否則會無法登入
    • 在 Synology NAS 上,可以用 Cloud Sync 搭配 WebDav Protocol 來同步資料下來
  2. 使用 github.com/pcloudcom/console-client 上,需要花點心力依照專案上簡介編譯出工具來使用,同理,預設不支援兩段式登入驗證(2FA),但有人有改 code 讓他支援: github.com/dberlin/console-client
  3. 安裝 pCloud PC app ,這時可以純靠 Sync 功能,把想要的目錄進行同步即可,不一定要整包 pCloud 500GB 都下載回來使用
    • 例如負責創 Cryptomator 加密資料庫且經常更新的那台電腦可以安裝,其他台電腦不一定要安裝 pCloud PC app
在 Ubuntu server 透過指令存取 Cryptomator 加密資料庫:
  1. 首先,透過 JavaRutime/JAR 環境運行 github.com/cryptomator/cli
    • $ java -jar cryptomator-cli-0.5.1.jar --vault myVault=/pCloud/CStore/myVault/ --password myVault=MyPassword --bind 127.0.0.1 --port 12345
  2. 接著再靠 mount 指令,掛載 davfs 使用
    • $ mkdir -p /media/myVault
    • $ echo | sudo mount -t davfs -o username=,user,gid=1000,uid=1000 http://localhost:12345/myVault /media/myVault
  3. 如此,就能透過 /media/myVault 存取加密資料
目前美中不足的就是 NAS 透過 WebDAV 存取 pCloud 這步無法做2FA,令人感到不安心,但在雲台機器上,可以把 pCloud 掛在進來當網路硬碟真的很佛,像是原本一台 20GB 空間的機器,瞬間就擴增到 500GB 等級,並且把資料整理後就能塞進 pCloud 備份,很舒服的。對應使用 Dropbox 缺點就是 Dropbox 空間上,若有 5GB ,那 server 上就得佔系統空間 5GB 給他同步資料,而 server 本身並不需要多存一份 5GB 來用。

使用 Cryptomator 的最大缺點,就是任何要存取資料的電腦環境都需要安裝 Cryptomator 對應軟體,也使得 pCloud 網頁版變成沒用了,必須把 Cryptomator 完整的加密資料庫都下載到本地端才可以瀏覽。這時就得花點心思規畫要如何透過 Cryptomator 切資料儲存機制了

其他資訊:

2022年9月11日 星期日

[Linux] 免費註冊 pCloud 獲得 500GB 空間 / 掛載 pCloud 空間進來使用 @ Docker - Ubuntu 22.04 Image

圖:pcloud.com 活動截圖 

pCloud 是瑞士的雲端空間服務,有在推 500GB/2TB/10TB 等終身付費服務,通常會隨著節慶推出 80% OFF 的方案(兩折),有興趣可以去逛逛粉絲團,像是註冊完一個免費帳號後 ( https://u.pcloud.com/#page=register&invite=cFRj7ZYwNRty 使用此連結註冊成功有機會送我1GB空間? ),接著再瀏覽 https://www.pcloud.com/zh/500GB_free 連結,可以啟用 3個月 500GB 免費方案 (這應該是限時活動,不知何時結束)

接著再來講講在 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 就留意一下即可

以上體驗後,再自行評估要不要拿來當虛擬機的備份用法囉!