本文介紹如何通過s3fs、goofys以及Rclone在不同作業系統中將OSS Bucket掛載到本地檔案系統,讓您能夠像操作本地檔案一樣操作OSS的對象(Object),實現資料的共用。
前提條件
s3fs
s3fs支援您在Linux,macOS系統中,將儲存空間掛載到本地檔案系統,讓您能夠像操作本地檔案一樣操作對象,實現資料的共用。關於s3fs的更多資訊,請參見GitHub。如果您在s3fs使用過程中遇到問題,請參見常見問題進行排查。
主要特點
重要
通過s3fs上傳或者下載檔案時,需要經過本機快取,其讀寫效能取決於磁碟的速度。由於s3fs緩衝可以無限增長,請確保定期清除。
操作步驟
通過s3fs掛載儲存空間的步驟如下:
安裝s3fs。
以下僅列舉Ubuntu、CentOS以及Mac系統安裝s3fs的命令。關於其他系統安裝s3fs的更多資訊,請參見s3fs安裝。
Ubuntu
CentOS
sudo yum install epel-release
sudo yum install s3fs-fuse
Mac
brew install --cask macfuse
brew install gromgit/fuse/s3fs-mac
配置帳號訪問資訊。
將具有Bucket存取權限的AccessKey ID和AccessKey Secret資訊存放在.passwd-s3fs檔案中。
echo ACCESS_KEY_ID:ACCESS_KEY_SECRET > ${HOME}/.passwd-s3fs
將.passwd-s3fs檔案的使用權限設定為600。
chmod 600 ${HOME}/.passwd-s3fs
掛載儲存空間。
建立掛載點。
將華東1(杭州)地區的examplebucket掛載至/tmp/oss-bucket。
s3fs examplebucket /tmp/oss-bucket -o passwd_file=$HOME/.passwd-s3fs -ourl=http://oss-cn-hangzhou.aliyuncs.com
goofys
goofys支援您在Linux,macOS系統中,將儲存空間掛載到本地檔案系統中。goofys僅支援少量的POSIX檔案系統功能。關於goofys的詳細說明,請參考GitHub。
主要特點
由於不支援對檔案中繼資料的操作,在一些依賴檔案中繼資料的情境,goofys存在使用限制。
由於不依賴本機快取,相對於s3fs,goofys在cp,mv等操作上有更好的讀寫效能。更多資訊,請參見Benchmark。
由於不支援隨機寫,goofys更適用於唯讀情境上使用。
您可以根據實際的業務特性,靈活選擇。
操作步驟
通過goofys掛載儲存空間的步驟如下:
安裝goofys。
以下僅列舉Linux以及Mac系統安裝goofys的命令。關於其他系統安裝goofys的更多資訊,請參見goofys安裝。
Linux
curl -SL "https://github.com/kahing/goofys/releases/latest/download/goofys" -o $HOME/goofys
chmod u+x $HOME/goofys
Mac
brew cask install osxfuse
brew install goofys
配置帳號訪問資訊。
建立設定檔。
開啟設定檔。
配置存取金鑰AccessKey ID和AccessKey Secret。
[default]
aws_access_key_id = 訪問OSS的AccessKey ID。
aws_secret_access_key = 訪問OSS的AccessKey Secret。
掛載儲存空間。
以將華東1(杭州)地區的examplebucket掛載到/mnt/oss-bucket下為例。
建立掛載點。
將examplebucket掛載到/mnt/oss-bucket。
$HOME/goofys --endpoint http://oss-cn-hangzhou.aliyuncs.com --subdomain examplebucket /mnt/oss-bucket
Rclone
Rclone是一個命令列程式,用於管理雲端儲存中的資料,支援在50多種雲端儲存產品間同步資料。相對於s3fs和goofys,Rclone還支援將儲存空間掛載到Windows系統上,作為本地磁碟共用資料。
主要特點
關於Rclone的介紹,請參見Rclone。
操作步驟
在Windows作業系統下,通過Rclone掛載儲存空間的步驟如下:
下載並按照頁面指引安裝Winfsp。
以下載winfsp-1.12.22339版本為例。下載地址,請參見Winfsp。
下載Rclone工具。
以下載rclone-v1.60.1-windows-amd64版本為例。下載地址,請參見Rclone。Rclone是一個命令列程式,下載後,只需解壓到本地任意目錄即可,此處以解壓到D:\Rclone目錄為例。
配置Rclone。
將D:\Rclone添加到環境變數。
開啟命令列視窗,輸入rclone --version,然後按下Enter。
返回rclone v1.60.1,表明Rclone已成功安裝。
輸入rclone config命令,然後按下Enter。
輸入n,按下Enter,然後建立new remote。
以new remote命名為test-remote為例。
輸入磁碟名稱,例如oss-disk,然後按下Enter。
選擇包含Amazon S3 Compliant Storage的選項,即輸入5,然後按下Enter。
選擇包含Alibaba Cloud Object Storage System (OSS)的選項,即輸入2,然後按下Enter。
執行到env_auth>,按下Enter。
執行到access_key_id>,輸入OSS的存取金鑰AccessKey ID,然後按下Enter。
執行到secret_access_key> ,輸入OSS的存取金鑰AccessKey Secret,然後按下Enter。
執行到endpoint>,輸入訪問OSS的endpoint,然後按下Enter。
以訪問華東1(杭州)外網為例,endpoint填寫為oss-cn-hangzhou.aliyuncs.com。如果是ECS上的Windows環境,您可以使用oss-cn-hangzhou-internal.aliyuncs.com的內網endpoint。
執行到acl>,選擇Object讀寫權限。
該選項僅對新上傳的Object有效。您可以根據實際需求選擇合適的讀寫權限。此處以選擇default(私人許可權)為例,即輸入1,然後按下Enter。
執行到storage_class>,選擇Object的儲存類型。
此處以選擇default(繼承Bucket儲存類型)為例,即輸入1,然後按下Enter。
執行到Edit advanced config? (y/n) ,輸入n,然後按下Enter。
輸入q,完成所有配置。
掛載儲存空間。
以將examplebucket掛載到E:盤,並以D:\disk-cache路徑作為緩衝目錄為例。
rclone mount oss-disk:/examplebucket E: --cache-dir D:\disk-cache --vfs-cache-mode writes
返回The service rclone has been started資訊,表示掛載成功。此時,您還可以查看到examplebucket(E:)的磁碟。