本文為您介紹如何在Linux系統上使用ossfs 1.0將OSSBucket掛載為本地檔案系統。
前提條件
掛載命令格式
-
命令格式:
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.com:url掛載選項指定目標Bucket的Endpoint,選項值格式為http://Endpoint。查看目標Bucket的Endpoint請進入Bucket列表頁面,選擇目標Bucket並進入,接著單擊左側導覽列的概覽選項,在概覽頁的訪問連接埠欄中即可查看目標Bucket所處的地區節點。以杭州地區Bucket為例。
除外網 Endpoint 外,ECS 傳統網路訪問(內網)和 VPC 網路訪問(內網)對應
oss-cn-hangzhou-internal.aliyuncs.com,傳輸加速網域名稱(全地區)對應oss-accelerate.aliyuncs.com,OSS 加速器對應cn-hangzhou-internal.oss-data-acc.aliyuncs.com。請根據實際網路環境選擇對應的 Endpoint。 -
sigv4:控制是否使用V4簽名。掛載時添加-osigv4。ossfs預設使用OSS V1簽名,添加該掛載選項後,ossfs將使用OSS V4簽名流程向OSS發起相關請求。 -
region=cn-hangzhou:OSS Bucket請求地區標識符,掛載時添加-oregion=<region_id>,預設為空白。在使用V4簽名時必須添加該選項來作為發起請求地區的標識符。
-
基礎掛載
設定檔掛載
-
建立掛載目錄。
執行以下命令,自訂建立
/tmp/ossfs-1和/tmp/ossfs-2空目錄作為目標Bucket的掛載目錄。mkdir /tmp/ossfs-1 /tmp/ossfs-2 -
掛載命令樣本。
執行以下兩條命令,將預設設定檔中配置的
bucket-test-1和bucket-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 -
掛載結果如下所示。
root@i-xxx:~# ossfs xxx /tmp/ossfs-1 -o url=http://oss-cn-hangzhou.aliyuncs.com -o sigv4 -o region=cn-hangzhou [NOTICE] OSS signature V1 service will not be available for new uids since March 1st, 2025. It is recommended to mount with OSS signature V4: ossfs [oss-bucket] [mount-path] [options] -osigv4 -oregion=[your-region-id] root@i-xxx:~# root@i-xxx :~# df -h /tmp/ossfs-1 Filesystem Size Used Avail Use% Mounted on ossfs 16E 0 16E 0% /tmp/ossfs-1
ECSRAMRole掛載
-
建立掛載目錄。
執行以下命令,建立
/tmp/ossfs空目錄作為目標Bucket的掛載目錄。mkdir /tmp/ossfs -
掛載命令樣本。
說明使用執行個體中繼資料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 -
掛載結果如下所示。
root@xxx xxx:~# ossfs xxx /tmp/ossfs -o url=http://oss-cn-hangzhou.aliyuncs.com -o ram role=http://100.100.100.200/latest/meta-data/ram/security-credentials/xxx -o sigv4 -o region=cn-hangzhou [NOTICE] OSS signature V1 service will not be available for new uids since March 1st, 2025. It is recommended to mount with OSS signature V4: ossfs [oss-bucket] [mount-path] [options] -osigv4 -oregion=[your-region-id] root@xxx xxx:~# root@xxx xxx:~# df -h /tmp/ossfs Filesystem Size Used Avail Use% Mounted on ossfs 16E 0 16E 0% /tmp/ossfs
情境化掛載
您可以在掛載時只掛載特定的目錄,或者通過添加掛載選項的方式,根據不同的使用情境選擇合適的掛載選項完成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掛載選項用於設定日誌資訊的層級,支援日誌資訊層級為
critical、error、warn、info和debug,預設值為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 |
修改掛載點的許可權,允許所有的使用者訪問掛載目錄,但不包括目錄中的檔案。目錄中檔案許可權需單獨設定,個別檔案的許可權修改請用 |
|
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
-
執行以下命令擷取指定使用者的uid、gid和groups。以www使用者為例。
id www運行結果如下所示。
root@iZbp1325rf1sja6ye4kbm2Z:~# id www uid=xxx(www) gid=xxx(www) groups=xxx(www) -
執行以下命令,將
bucket_name掛載至本地mount_point目錄下,並通過uid和gid掛載選項指定使用者和組,只允許同組的使用者訪問,許可權為770。uid和gid資訊以1000為例,請在掛載命令執行前替換為目標使用者的uid和gid資訊。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
-
實用技巧
卸載已掛載的Bucket
您可以使用以下命令,卸載已掛載到本地的OSS檔案系統。例如,卸載掛載在/tmp/ossfs路徑下的檔案系統。
umount /tmp/ossfs
常見問題
-
Windows系統掛載OSSBucket請使用Cloud Storage GatewayCSG。詳情請參見在雲控制台上使用檔案網關和訪問SMB共用目錄。
-
ECS通過內網Endpoint掛載OSS不產生流量費用。更多關於流量費用資訊,請參見流量費用。
-
如果您的ECS和OSS不在同一地區且需要進行跨地區掛載,請確保網路暢通,您可以直接使用外網Endpoint進行掛載。此外,您還可以ECS私網訪問跨地區的OSS服務。
-
如果您需要通過Cloud Storage Gateway搭建IIS網站並將OSS作為資料存放區,請參見如何使用阿里雲Cloud Storage Gateway搭建IIS網站。
-
如果您需要在Windows作業系統上掛載OSS,請參見Rclone。
-
更多關於掛載,許可權等相關問題,請參見常見問題。