本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

通過s3fs、goofys以及Rclone在不同作業系統中將OSS Bucket掛載到本地檔案系統

更新時間:2024-06-18 21:02

本文介紹如何通過s3fs、goofys以及Rclone在不同作業系統中將OSS Bucket掛載到本地檔案系統,讓您能夠像操作本地檔案一樣操作OSS的對象(Object),實現資料的共用。

前提條件

  • 已建立RAM使用者並擷取存取金鑰(AccessKey)。具體操作,請參見建立RAM使用者

  • 為已建立的RAM使用者授予系統許可權或自訂許可權。

    • 系統許可權:您可以為RAM使用者授予管理OSS的許可權AliyunOSSFullAccess或者唯讀訪問OSS的許可權AliyunOSSReadOnlyAccess。

    • 自訂許可權:您還可以結合業務情境,通過建立自訂許可權實現OSS的細粒度許可權控制。更多資訊,請參見RAM Policy常見樣本

s3fs

s3fs支援您在Linux,macOS系統中,將儲存空間掛載到本地檔案系統,讓您能夠像操作本地檔案一樣操作對象,實現資料的共用。關於s3fs的更多資訊,請參見GitHub。如果您在s3fs使用過程中遇到問題,請參見常見問題進行排查。

主要特點

  • 支援POSIX檔案系統的大部分功能,例如上傳和下載檔案、目錄、 軟連結、設定使用者權限等。

  • 支援隨機寫和追加寫。

  • 不支援永久連結。

  • 大檔案通過分區方式上傳。

  • 依賴本地檔案作為緩衝。

重要

通過s3fs上傳或者下載檔案時,需要經過本機快取,其讀寫效能取決於磁碟的速度。由於s3fs緩衝可以無限增長,請確保定期清除。

操作步驟

通過s3fs掛載儲存空間的步驟如下:

  1. 安裝s3fs。

以下僅列舉Ubuntu、CentOS以及Mac系統安裝s3fs的命令。關於其他系統安裝s3fs的更多資訊,請參見s3fs安裝

  • Ubuntu

    sudo apt install s3fs 
  • CentOS

    sudo yum install epel-release 
    sudo yum install s3fs-fuse
  • Mac

    brew install --cask macfuse 
    brew install gromgit/fuse/s3fs-mac
  1. 配置帳號訪問資訊。

    將具有Bucket存取權限的AccessKey ID和AccessKey Secret資訊存放在.passwd-s3fs檔案中。

    echo ACCESS_KEY_ID:ACCESS_KEY_SECRET > ${HOME}/.passwd-s3fs
  2. 將.passwd-s3fs檔案的使用權限設定為600。

    chmod 600 ${HOME}/.passwd-s3fs
  3. 掛載儲存空間。

    1. 建立掛載點。

      mkdir /tmp/oss-bucket
    2. 將華東1(杭州)地區的examplebucket掛載至/tmp/oss-bucket。

      s3fs examplebucket /tmp/oss-bucket -o passwd_file=$HOME/.passwd-s3fs -ourl=http://oss-cn-hangzhou.aliyuncs.com
      說明
      • 如果是與OSS同地區的ECS訪問,您可以使用oss-cn-hangzhou-internal.aliyuncs.com的內網endpoint。更多資訊,請參見訪問網域名稱和資料中心

      • 關於s3fs支援參數的更多資訊,請參見s3fs-fuse

goofys

goofys支援您在Linux,macOS系統中,將儲存空間掛載到本地檔案系統中。goofys僅支援少量的POSIX檔案系統功能。關於goofys的詳細說明,請參考GitHub

主要特點

  • 僅支援順序寫。

  • 不儲存檔案的許可權和屬性。

  • 不支援軟連結和永久連結。

  • 建立時間(ctime)、訪問時間(atime)與修改時間(mtime)保持一致。

  • 不依賴本機快取。

由於不支援對檔案中繼資料的操作,在一些依賴檔案中繼資料的情境,goofys存在使用限制。

由於不依賴本機快取,相對於s3fs,goofys在cp,mv等操作上有更好的讀寫效能。更多資訊,請參見Benchmark

由於不支援隨機寫,goofys更適用於唯讀情境上使用。

您可以根據實際的業務特性,靈活選擇。

操作步驟

通過goofys掛載儲存空間的步驟如下:

  1. 安裝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
  1. 配置帳號訪問資訊。

    1. 建立設定檔。

      mkdir ~/.aws
    2. 開啟設定檔。

      vi ~/.aws/credentials
    3. 配置存取金鑰AccessKey ID和AccessKey Secret。

      [default]
      aws_access_key_id =  訪問OSS的AccessKey ID。
      aws_secret_access_key = 訪問OSS的AccessKey Secret。
  2. 掛載儲存空間。

    以將華東1(杭州)地區的examplebucket掛載到/mnt/oss-bucket下為例。

    1. 建立掛載點。

      mkdir /mnt/oss-bucket
    2. 將examplebucket掛載到/mnt/oss-bucket。

      $HOME/goofys --endpoint http://oss-cn-hangzhou.aliyuncs.com --subdomain examplebucket /mnt/oss-bucket
      說明
      • 以上樣本中的--subdomain為必選項,用於啟用虛擬網域名稱。其他選項,例如掛載的Bucket,Bucket所在地區對應的endpoint以及掛載點資訊,請根據實際情況替換。

      • 如果是與OSS同地區的ECS訪問,您可以使用oss-cn-hangzhou-internal.aliyuncs.com的內網endpoint。

Rclone

Rclone是一個命令列程式,用於管理雲端儲存中的資料,支援在50多種雲端儲存產品間同步資料。相對於s3fs和goofys,Rclone還支援將儲存空間掛載到Windows系統上,作為本地磁碟共用資料。

主要特點

  • Rclone支援檔案同步、檔案傳輸、加密、掛載等。

  • Rclone支援多種系統,能讓您將儲存空間掛載到本地檔案系統中,並通過多種協議提供服務。

關於Rclone的介紹,請參見Rclone

操作步驟

在Windows作業系統下,通過Rclone掛載儲存空間的步驟如下:

  1. 下載並按照頁面指引安裝Winfsp。

    以下載winfsp-1.12.22339版本為例。下載地址,請參見Winfsp

  2. 下載Rclone工具。

    以下載rclone-v1.60.1-windows-amd64版本為例。下載地址,請參見Rclone。Rclone是一個命令列程式,下載後,只需解壓到本地任意目錄即可,此處以解壓到D:\Rclone目錄為例。

  3. 配置Rclone。

    1. 將D:\Rclone添加到環境變數。

    2. 開啟命令列視窗,輸入rclone --version,然後按下Enter。

      返回rclone v1.60.1,表明Rclone已成功安裝。

    3. 輸入rclone config命令,然後按下Enter。

    4. 輸入n,按下Enter,然後建立new remote。

      以new remote命名為test-remote為例。

    5. 輸入磁碟名稱,例如oss-disk,然後按下Enter。

    6. 選擇包含Amazon S3 Compliant Storage的選項,即輸入5,然後按下Enter。

    7. 選擇包含Alibaba Cloud Object Storage System (OSS)的選項,即輸入2,然後按下Enter。

    8. 執行到env_auth>,按下Enter。

    9. 執行到access_key_id>,輸入OSS的存取金鑰AccessKey ID,然後按下Enter。

    10. 執行到secret_access_key> ,輸入OSS的存取金鑰AccessKey Secret,然後按下Enter。

    11. 執行到endpoint>,輸入訪問OSS的endpoint,然後按下Enter。

      以訪問華東1(杭州)外網為例,endpoint填寫為oss-cn-hangzhou.aliyuncs.com。如果是ECS上的Windows環境,您可以使用oss-cn-hangzhou-internal.aliyuncs.com的內網endpoint。

    12. 執行到acl>,選擇Object讀寫權限。

      該選項僅對新上傳的Object有效。您可以根據實際需求選擇合適的讀寫權限。此處以選擇default(私人許可權)為例,即輸入1,然後按下Enter。

    13. 執行到storage_class>,選擇Object的儲存類型。

      此處以選擇default(繼承Bucket儲存類型)為例,即輸入1,然後按下Enter。

    14. 執行到Edit advanced config? (y/n) ,輸入n,然後按下Enter。

    15. 輸入q,完成所有配置。

  4. 掛載儲存空間。

    以將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:)的磁碟。

  • 本頁導讀 (1, M)
  • 前提條件
  • s3fs
  • 主要特點
  • 操作步驟
  • goofys
  • 主要特點
  • 操作步驟
  • Rclone
  • 主要特點
  • 操作步驟
文檔反饋