全部產品
Search
文件中心

Object Storage Service:使用ossfs 1.0掛載Bucket到本地Linux系統

更新時間:Jul 15, 2025

本文為您介紹如何在Linux系統上使用ossfs 1.0將OSSBucket掛載為本地檔案系統。

前提條件

安裝ossfs 1.0配置ossfs 1.0

掛載命令格式

  • 命令格式ossfs bucket_name /tmp/ossfs -o url=http://oss-cn-hangzhou.aliyuncs.com -o sigv4 -o region=cn-hangzhou

  • 參數說明

    • ossfs:ossfs啟動程式。

    • bucket_name:被掛載的目標Bucket名稱。

    • /tmp/ossfs:本地檔案系統掛載目標Bucket的目錄。

    • -o:掛載選項首碼參數,此參數在掛載命令中為必填項。

    • url=http://oss-cn-hangzhou.aliyuncs.comurl掛載選項指定目標Bucket的Endpoint,選項值格式為http://Endpoint

      查看目標Bucket的Endpoint請進入Bucket列表頁面,選擇目標Bucket並進入,接著單擊左側導覽列的概覽選項,在概覽頁的訪問連接埠欄中即可查看目標Bucket所處的地區節點。如圖所示,以杭州地區Bucket為例。

      image

    • sigv4:控制是否使用V4簽名。掛載時添加-osigv4。ossfs預設使用OSS V1簽名,添加該掛載選項後,ossfs將使用OSS V4簽名流程向OSS發起相關請求。

    • region=cn-hangzhou:OSS Bucket請求地區標識符,掛載時添加-oregion=<region_id>,預設為空白。在使用V4簽名時必須添加該選項來作為發起請求地區的標識符。

基礎掛載

設定檔掛載

  1. 建立掛載目錄。

    執行以下命令,自訂建立 /tmp/ossfs-1/tmp/ossfs-2空目錄作為目標Bucket的掛載目錄。

    mkdir /tmp/ossfs-1 /tmp/ossfs-2
  2. 掛載命令樣本。

    執行以下兩條命令,將預設設定檔中配置的bucket-test-1bucket-test-2分別掛載到本地/tmp/ossfs-1以及/tmp/ossfs-2目錄下。

    ossfs bucket-test-1 /tmp/ossfs-1/ -o url=http://oss-cn-hangzhou.aliyuncs.com -o sigv4 -o region=cn-hangzhou
    ossfs bucket-test-2 /tmp/ossfs-2/ -o url=http://oss-cn-hangzhou.aliyuncs.com -o sigv4 -o region=cn-hangzhou
  3. 掛載結果如圖所示。

    image

ECSRAMRole掛載

  1. 建立掛載目錄。

    執行以下命令,建立 /tmp/ossfs空目錄作為目標Bucket的掛載目錄。

    mkdir /tmp/ossfs
  2. 掛載命令樣本。

    說明

    使用執行個體中繼資料URL掛載ossfs,目前僅支援普通模式訪問。有關中繼資料訪問模式介紹,請參見中繼資料訪問模式說明

    執行以下命令,將名為bucket1的Bucket掛載到本地/tmp/ossfs目錄下。

    請注意:使用ECSRAMRole掛載方式掛載Bucket時,需配合ram_role參數指定執行個體中繼資料URL,100.100.100.200為阿里雲ECS執行個體中繼資料服務的預設IP地址無需更改。EcsRamRoleOssTest為ECS執行個體所綁定的角色名稱,請替換為您的目標角色名稱,其餘資訊無需更改。

    ossfs bucket1 /tmp/ossfs -o url=http://oss-cn-hangzhou.aliyuncs.com -o ram_role=http://100.100.100.200/latest/meta-data/ram/security-credentials/EcsRamRoleOssTest -o sigv4 -o region=cn-hangzhou
  3. 掛載結果如圖所示。

    image

情境化掛載

您可以在掛載時只掛載特定的目錄,或者通過添加掛載選項的方式,根據不同的使用情境選擇合適的掛載選項完成Bucket的掛載。請注意:在掛載命令執行前必須保證本地目標掛載目錄為空白。

指定檔案目錄掛載

執行以下命令,將bucket-ossfs-test中的folder目錄掛載到本地/tmp/ossfs-folder目錄下。

ossfs bucket-ossfs-test:/folder /tmp/ossfs-folder -o url=http://oss-cn-hangzhou.aliyuncs.com -o sigv4 -o region=cn-hangzhou

指定設定檔掛載

  • 掛載選項passwd_file掛載選項用於在掛載時指定非預設ossfs 1.0設定檔的路徑,且指定設定檔許可權需設定為600。

  • 掛載樣本

    執行以下命令,將指定設定檔中配置的bucket-test-3掛載到本地/tmp/ossfs-3目錄下。

    ossfs bucket-test-3 /tmp/ossfs-3 -o url=http://oss-cn-hangzhou.aliyuncs.com -o passwd_file=/etc/passwd-ossfs-3 -o sigv4 -o region=cn-hangzhou

掛載時開啟調試日誌

  • 掛載選項dbglevel掛載選項用於設定日誌資訊的層級,支援日誌資訊層級為criticalerrorwarninfodebug ,預設值為critical。預設日誌儲存路徑:CentOS系統儲存在/var/log/messages中,Ubuntu系統則儲存在/var/log/syslog中。您也可以通過logfile掛載選項指定目標記錄檔路徑。

  • 掛載樣本1

    執行以下命令,將bucket-ossfs-test-1掛載到本地/tmp/ossfs-1下,並通過-d開啟libfuse調試日誌,通過dbglevel掛載選項設定日誌資訊層級為debug

    ossfs bucket-ossfs-test-1 /tmp/ossfs-1 -d -o dbglevel=debug -o sigv4 -o region=cn-hangzhou
  • 掛載樣本2

    執行以下命令,將bucket-ossfs-test-2掛載到本地/tmp/ossfs-2下,日誌資訊層級設定為debug並開啟libfuse調試日誌,日誌資訊通過-f掛載選項設定為在前台終端輸出。

    ossfs bucket-ossfs-test-2 /tmp/ossfs-2 -d -o dbglevel=debug -f -o sigv4 -o region=cn-hangzhou

掛載時配置存取權限

ossfs掛載的目錄存取權限預設為掛載點的所有者,即執行掛載命令的使用者,其他使用者無法訪問。如果要修改預設的使用權限設定,例如允許其他使用者或使用者組訪問掛載點,您則可以在使用ossfs掛載OSS儲存空間時根據要求的權限配置相應參數,做到期望的使用權限設定。

掛載選項

說明

allow_other

修改掛載點的許可權,允許所有的使用者訪問掛載目錄,但不包括目錄中的檔案。目錄中檔案許可權需單獨設定,個別檔案的許可權修改請用chmod命令,全部檔案修改為統一許可權請參考umask選項進行配置。

uid

設定檔案夾屬於某個使用者時填寫的使用者uid。

gid

設定檔案夾屬於某個使用者時填寫的使用者gid。

umask

用來設定掛載點下檔案和目錄的許可權掩碼。例如需要設定掛載點下檔案的許可權為770,則增加-o umask=007;需要設定掛載點下檔案的許可權700,則增加-o umask=077

  • 掛載樣本1

    執行以下命令,將bucket_name掛載至本地mount_point目錄下,並通過allow_other掛載選項設定掛載目錄許可權為777,所有使用者均可訪問。

    ossfs bucket_name mount_point -o url=endpoint -o allow_other -o sigv4 -o region=cn-hangzhou
  • 掛載樣本2

    執行以下命令,將bucket_name掛載至本地mount_point目錄下,並通過umask掛載選項設定掛載目錄及目錄中檔案許可權為770,即只允許同組使用者訪問。

    ossfs bucket_name mount_point -o url=endpoint -o umask=007 -o sigv4 -o region=cn-hangzhou
  • 掛載樣本3

    1. 執行以下命令擷取指定使用者的uid、gid和groups。以www使用者為例。

      id www

      運行結果如圖所示。

      image

    2. 執行以下命令,將bucket_name掛載至本地mount_point目錄下,並通過uidgid掛載選項指定使用者和組,只允許同組的使用者訪問,許可權為770。uidgid資訊以1000為例,請在掛載命令執行前替換為目標使用者的uidgid資訊。

      ossfs bucket_name mount_point -o url=endpoint -o allow_other -o uid=1000 -o gid=1000 -o umask=007 -o sigv4 -o region=cn-hangzhou

實用技巧

設定開機自動掛載

手動掛載OSS儲存空間後,系統重啟時不會自動重新掛載。如果您希望在系統重啟後自動掛載OSS,請按照以下步驟進行設定。在配置開機自動掛載前,請先確認手動掛載成功,避免ECS啟動失敗。以下方法在使用賬戶AK配置後,將實現開機自動掛載的設定。

  1. 將Bucket名稱、AccessKeyID、AccessKeySecret等資訊寫入/etc/passwd-ossfs檔案,並將檔案許可權修改為640。

    配置步驟請參見配置ossfs 1.0

  2. 設定開機自動掛載。

    說明

    此處僅提供常見版本的設定開機自動掛載ossfs的樣本。對於其他未涉及的版本,請自行參考平台相關文檔設定開機自動掛載。

    Ubuntu 14.04及以上、CentOS 6.5及以上系統通過fstab自動掛載

    1. /etc/fstab中加入如下命令:

      ossfs#bucket_name mount_point fuse _netdev,url=url,allow_other 0 0

      參數配置說明如下:

      參數

      說明

      bucket_name

      被掛載的目標Bucket名稱,請將bucket_name替換為您實際的OSSBucket名稱。

      mount_point

      本地掛載目錄,請將mount_point替換為您本地實際掛載目錄路徑。

      url=url

      被掛載目標Bucket的Endpoint。

      0 0

      檔案系統的選項。

    2. 儲存/etc/fstab檔案。執行mount -a -t fuse命令,如果沒有報錯,則說明設定正常。

    3. 上一步執行完成後,Ubuntu 14.04就能自動掛載了。CentOS 6.5還需要執行如下命令:

      chkconfig netfs on

    CentOS 7.0及以上的系統通過開機自動啟動指令碼進行掛載

    1. /etc/init.d/目錄下建立檔案ossfs,並將以下內容拷貝至該新檔案中。同時,將掛載命令中的資訊改為您的目標Bucket相關資訊。

      #! /bin/bash
      #
      # ossfs      Automount Aliyun OSS Bucket in the specified direcotry.
      #
      # chkconfig: 2345 90 10
      # description: Activates/Deactivates ossfs configured to start at boot time.
      
      ossfs your_bucket your_mountpoint -ourl=your_url -oallow_other
    2. 為建立立的ossfs指令碼賦予可執行許可權:

      chmod a+x /etc/init.d/ossfs

      命令執行完成後,您可以嘗試執行該指令碼,如果指令檔內容無誤,那麼此時OSS中的Bucket已經掛載到您指定的目錄下了。

    3. ossfs啟動指令碼作為其他服務,開機自動啟動:

      chkconfig ossfs on
    4. 執行上述步驟後,ossfs就可以開機自動掛載了。

    重要

    chkconfig不會自動啟動異常退出的ossfs,只能確保ossfs在開機時自啟動。

卸載已掛載的Bucket

您可以使用以下命令,卸載已掛載到本地的OSS檔案系統。例如,卸載掛載在/tmp/ossfs路徑下的檔案系統。

umount /tmp/ossfs

常見問題