2020-10-25

在 Digitalocean Spaces 和 Wasabi 上使用 s3fs 和 rsync

在 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 則留言:

Shinder 提到...

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!

FB 留言