在 Digitalocean Spaces 和 Wasabi 上使用 s3fs 和 rsync
AWS S3 是個方便的雲端工具,唯一的缺點就是價格高了一些(消費者的缺點?) 剛好有客戶是用 digitalocean 的空間,就來試試 Spaces 吧(開始踩雷之旅)。
之前試用 S3,發現 s3fs 真是個好東西,掛上去之後就像使用一般磁碟一樣方便。
在 ubuntu 20.4 上安裝好 s3fs 後,Spaces 的設定一直搞不定,參考了這篇How to mount DigitalOcean Spaces on droplets with s3fs。
其中一點是 /etc/fuse.conf 裡的 user_allow_other 要開啟。 另外要開 debug mode 的設定,不然永遠都沒訊息,不管有沒有設定成功。
-o dbglevel=info -f -o curldbg
Digitalocean Spaces 以設定在 sfo2 為例子:
s3fs mySpacesName ${HOME}/s3/myMntFolder -o passwd_file=${HOME}/.passwd-do-spaces -o url=https://sfo2.digitaloceanspaces.com/ -o allow_other -o use_path_request_style -o dbglevel=info -f -o curldbg
上式中,mySpacesName 為 Spaces 名稱;${HOME}/s3/myMntFolder 為掛載的資料夾路徑;.passwd-do-spaces 為金鑰的設定檔。測試後,除錯的參數就可以拿掉了。
Wasabi Storage 的設定:
s3fs myBucketName ${HOME}/s3/myMntFolder -o passwd_file=${HOME}/.passwd-wasabi -o url=https://s3.us-west-1.wasabisys.com
Wasabi 要注意的是,url 的設定。官方說使用 https://s3.wasabisys.com 就可以了,但實際上會出錯(不知道是不是 s3fs 版本的問題)。應該直接使用 endpoint(雲端可用區域)的 url。
原以為掛上去之後就會帆風順,結果原本好用的 rsync 卻一直出狀況。同步上傳沒多少檔案就出錯罷工,之後常常看到隱藏檔的出現,但來源卻沒有這些檔案。
找了好一陣子才發現這篇 S3FS rsync recommendations,主要是針對 rsync 的特性和 S3 的特性做參數的校調。
例如:
rsync -avW --progress --inplace --size-only /mnt/volumes/my_copy_folder /target_folder
目前看來,似乎可以好好用 rsync。 還是有個問題:Digitalocean Spaces 和 Wasabi Storage 上傳的速度好慢...
備註:之後改用 s3cmd 上傳,速度快很多。
1 則留言:
https://github.com/s3fs-fuse/s3fs-fuse/issues/673
-o umask=0007,uid=1001 # replace 1001 with your id
This is the only thing that worked for me... It needs to go into the readme!
張貼留言