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

使用ossfs將OSS的Bucket掛載到Linux系統中

更新時間:2025-02-05 19:04

對於原來需要直接讀寫本地檔案的應用程式,為了讓應用程式能在不作修改的情況下直接存取Object Storage Service的資料,您可以使用ossfs將OSS的Bucket掛載到Linux系統中,並將其映射到本地目錄,從而能夠像處理本地檔案那樣直接操作OSS中的資料,實現檔案分享權限設定。

前提條件

開通OSS服務建立OSS Bucket

軟體包安裝

下載地址

以下列表中提供了常用系統的安裝包,如果您的系統版本不在以下列表中,請通過源碼安裝

Linux發行版

下載

Linux發行版

下載

Ubuntu 22.04 (x64)

ossfs_1.91.5_ubuntu22.04_amd64.deb

Ubuntu 20.04 (x64)

ossfs_1.91.5_ubuntu20.04_amd64.deb

Ubuntu 18.04 (x64)

ossfs_1.91.5_ubuntu18.04_amd64.deb

Ubuntu 16.04 (x64)

ossfs_1.91.5_ubuntu16.04_amd64.deb

Ubuntu 14.04 (x64)

ossfs_1.91.5_ubuntu14.04_amd64.deb

CentOS 8.0 (x64)

ossfs_1.91.5_centos8.0_x86_64.rpm

CentOS 7.0 (x64)

ossfs_1.91.5_centos7.0_x86_64.rpm

Anolis8/Alibaba Cloud Linux 3

ossfs_1.91.5_alinux3_x86_64.rpm

Anolis7/Alibaba Cloud Linux 2

ossfs_1.91.5_alinux2_x86_64.rpm

安裝步驟

  1. 安裝ossfs。

    重要

    在使用命令下載軟體包時,軟體包的URL地址需按照特定格式填寫。例如,若要下載CentOS 7.0(x64)版本的軟體包,其格式應為:https://gosspublic.alicdn.com/ossfs/系統軟體包版本。具體樣本如下。

    sudo wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.5_centos7.0_x86_64.rpm
    Ubuntu系統
    CentOS系統/Anolis系統/Alibaba Cloud Linux系統

    以Ubuntu 16.04 (x64)版本為例,依次執行以下命令安裝ossfs。

    sudo wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.5_ubuntu16.04_amd64.deb
    sudo apt-get update
    sudo apt-get install gdebi-core
    sudo gdebi ossfs_1.91.5_ubuntu16.04_amd64.deb

    以CentOS 7.0(x64)版本為例,安裝命令如下。

    sudo wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.5_centos7.0_x86_64.rpm
    sudo yum install ossfs_1.91.5_centos7.0_x86_64.rpm

    對於使用yum安裝rpm包的用戶端,如果用戶端節點網路環境特殊,無法直接使用yum下載依賴包。您可以在網路正常的、相同版本作業系統的節點上,使用yum下載依賴包並拷貝到網路特殊的節點。例如,ossfs需要依賴fuse 2.8.4以上版本,可使用如下命令,下載yum源中最新的fuse到本地。

    sudo yum install --downloadonly --downloaddir=./ fuse
    重要

    如果需要下載其他依賴包,請將fuse換成對應包的名稱。

  2. ossfs通過查詢/etc/mime.types中的內容來設定檔案的Content-Type,如果您希望上傳檔案的Content-Type和副檔名匹配,您需要添加mime.types檔案。

    如果您不添加mime.types檔案,ossfs預設將上傳檔案的Content-Type設定為application/octet-stream

    您可以通過以下命令添加 mime.types 檔案。

    Ubuntu系統
    CentOS系統/Anolis系統/Alibaba Cloud Linux系統

    您可以通過以下命令添加mime.types檔案。

    sudo apt-get install mime-support

    您可以通過以下命令添加mime.types檔案。

    sudo yum install mailcap
  3. 執行ossfs --version命令查看ossfs版本資訊,出現如圖所示提示資訊,證明安裝成功。

    image

掛載訪問

  1. 選擇需要進行本地掛載的Bucket。

    說明

    避免將低頻訪問或已啟用歸檔直讀功能的Bucket作為掛載目標。這兩種類型Bucket在接收上傳檔案時,可能出現兩次上傳請求。初次上傳產生一個大小為0的佔位檔案,隨後再次上傳實際資料作為檔案儲存體在Bucket。由於涉及的檔案儲存體類型為低頻訪問或歸檔,即使是0位元組的佔位檔案也會根據相應的儲存類別(低頻或歸檔)計費規則,即最少按64 KB資料量計算30天的儲存費用。這可能導致使用者在不知情的情況下額外承擔儲存費用。

  2. 配置帳號訪問資訊。

    將Bucket名稱以及具有該Bucket存取權限的RAM使用者的AccessKey ID和AccessKey Secret資訊存放在/etc/passwd-ossfs檔案中,並設定檔案的許可權為640。

    sudo sh -c 'echo <BucketName>:<yourAccessKeyId>:<yourAccessKeySecret> > /etc/passwd-ossfs'
    ### root 使用者可使用以下命令:###
    # echo <BucketName>:<yourAccessKeyId>:<yourAccessKeySecret> > /etc/passwd-ossfs
    sudo chmod 640 /etc/passwd-ossfs

    BucketName、yourAccessKeyId、yourAccessKeySecret請按需替換為您實際的Bucket名稱、AccessKey ID和AccessKey Secret,例如:

    sudo sh -c 'echo bucket-test:LTAI************:MOk8x0y9hx******************** > /etc/passwd-ossfs'
    sudo chmod 640 /etc/passwd-ossfs
  3. 將Bucket掛載到指定目錄。

    說明

    為保障ossfs掛載後的資料訪問安全,建議參考ossfs配置與掛載,正確配置帳號資訊和存取權限。如果您已熟練掌握ossfs的使用方法,建議您參考最佳實務文檔,以獲得更好的使用體驗。

    sudo ossfs <BucketName> <mountfolder> -o url=<Endpoint>

    將杭州地區名稱為bucket-test的Bucket掛載到/tmp/ossfs目錄下的樣本如下:

    sudo mkdir /tmp/ossfs
    sudo ossfs bucket-test /tmp/ossfs -o url=http://oss-cn-hangzhou-internal.aliyuncs.com
    重要

    為降低讀取資料產生的流量費用,建議您通過阿里雲ECS部署ossfs,並通過-o url指定內網Endpoint的形式訪問目標Bucket(內網Endpoint樣本值為http://oss-cn-hangzhou-internal.aliyuncs.com)。使用內網Endpoint的前提是ECS必須和目標Bucket處於相同地區。有關OSS內網網域名稱的更多資訊,請參見OSS地區和訪問網域名稱

  4. 您可以像訪問本地檔案系統一樣讀取Bucket中的對象。

    1. 查看Bucket中檔案清單。

      sudo ls -lh /tmp/ossfs

      image

      說明

      中繼資料操作(例如list directory)需要遠端存取OSS伺服器,存在網路延遲。

    2. 從OSS拷貝檔案到本地。

      sudo cp /tmp/ossfs/bird.jpeg /root
    3. 從本地拷貝檔案到OSS。

      sudo cp /root/forest.jpeg /tmp/ossfs

      將本地root目錄下的forest.jpeg檔案,拷貝至已掛載的Bucket中,並同步到OSS遠程。

      image

      說明

      如果您因意外中斷了檔案上傳的過程且未繼續完成該檔案的上傳,則已上傳的部分會以片段(Part)的形式儲存在Bucket中。如果您不再需要這些Part,建議您通過以下方式刪除,以免產生額外的儲存費用。

  5. 如果您不希望繼續掛載此Bucket,您可以執行以下命令將其卸載。

    sudo fusermount -u /tmp/ossfs

相關文檔

  • 本頁導讀 (1, M)
  • 前提條件
  • 軟體包安裝
  • 下載地址
  • 安裝步驟
  • 掛載訪問
  • 相關文檔
文檔反饋