本文为您介绍如何在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请使用云存储网关CSG。详情请参见在云控制台上使用文件网关和访问SMB共享目录。
-
ECS通过内网Endpoint挂载OSS不产生流量费用。更多关于流量费用信息,请参见流量费用。
-
如果您的ECS和OSS不在同一地域且需要进行跨地域挂载,请确保网络畅通,您可以直接使用外网Endpoint进行挂载。此外,您还可以ECS私网访问跨地域的OSS服务。
-
如果您需要通过云存储网关搭建IIS网站并将OSS作为数据存储,请参见如何使用阿里云云存储网关搭建IIS网站。
-
如果您需要在Windows操作系统上挂载OSS,请参见Rclone。
-
更多关于挂载,权限等相关问题,请参见常见问题。