使用ossfs 1.0挂载Bucket到本地Linux系统

更新时间:2025-04-24 05:52:59

本文为您介绍如何在Linux系统上使用ossfs 1.0OSSBucket挂载为本地文件系统。

前提条件

安装ossfs 1.0配置ossfs 1.0

挂载命令格式

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

  • 参数说明

    • ossfs:ossfs启动程序。

    • bucket__name:被挂载的目标Bucket名称。

    • /tmp/ossfs:本地文件系统挂载目标Bucket的目录。

    • -o:挂载选项前缀参数,此参数在挂载命令中为必填项。

    • url=http://oss-cn-hangzhou.aliyuncs.comurl挂载选项指定目标BucketEndpoint,选项值格式为http://Endpoint

      查看目标BucketEndpoint请进入Bucket列表页面,选择目标Bucket并进入,接着单击左侧导航栏的概览选项,在概览页的访问端口栏中即可查看目标Bucket所处的地域节点。如图所示,以杭州地域Bucket为例。

      image

基础挂载

配置文件挂载

  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
    ossfs bucket-test-2 /tmp/ossfs-2 -o url=http://oss-cn-hangzhou.aliyuncs.com

ECSRAMRole挂载

  1. 创建挂载目录。

    执行以下命令,创建 /tmp/ossfs空目录作为目标Bucket的挂载目录。

    mkdir /tmp/ossfs
  2. 挂载命令示例。

    说明

    使用实例元数据URL挂载ossfs,目前仅支持普通模式访问。有关元数据访问模式介绍,请参见元数据访问模式说明

    执行以下命令,将名为bucket1Bucket挂载到本地/tmp/ossfs目录下。

    请注意:使用ECSRAMRole挂载方式挂载Bucket时,需配合ram_role参数指定实例元数据URL,100.100.100.200为阿里云ECS实例元数据服务的默认IP地址无需更改。EcsRamRoleOssTestECS实例所绑定的角色名称,请替换为您的目标角色名称,其余信息无需更改。

    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

场景化挂载

您可以在挂载时只挂载特定的目录,或者通过添加挂载选项的方式,根据不同的使用场景选择合适的挂载选项完成Bucket的挂载。请注意:在挂载命令执行前必须保证本地目标挂载目录为空。

指定文件目录挂载

执行以下命令,将bucket-ossfs-test中的folder目录挂载到本地/tmp/ossfs-folder目录下。

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

指定配置文件挂载

  • 挂载选项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

挂载时开启调试日志

  • 挂载选项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
  • 挂载示例2

    执行以下命令,将bucket-ossfs-test-2挂载到本地/tmp/ossfs-2下,日志信息级别设置为debug并开启libfuse调试日志,日志信息通过-f挂载选项设置为在前台终端输出。

    ossfs bucket-ossfs-test-2 /tmp/ossfs-2 -d -o dbglevel=debug -f

挂载时配置访问权限

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
  • 挂载示例2

    执行以下命令,将bucket_name挂载至本地mount_point目录下,并通过umask挂载选项设置挂载目录及目录中文件权限为770,即只允许同组用户访问。

    ossfs bucket_name mount_point -o url=endpoint -o umask=007
  • 挂载示例3

    1. 执行以下命令获取指定用户的uid、gidgroups。以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

实用技巧

设置开机自动挂载

手动挂载OSS存储空间后,系统重启时不会自动重新挂载。如果您希望在系统重启后自动挂载OSS,请按照以下步骤进行设置。在配置开机自动挂载前,请先确认手动挂载成功,避免ECS启动失败。以下方法在使用账户AK配置后,将实现开机自动挂载的设置。

  1. Bucket名称、AccessKeyID、AccessKeySecret等信息写入/etc/passwd-ossfs文件,并将文件权限修改为640。

    配置步骤请参见配置ossfs 1.0

  2. 设置开机自动挂载。

    说明

    此处仅提供常见版本的设置开机自动挂载ossfs的示例。对于其他未涉及的版本,请自行参考平台相关文档设置开机自动挂载。

    Ubuntu 14.04及以上、CentOS 6.5及以上系统通过fstab自动挂载
    CentOS 7.0及以上的系统通过开机自动启动脚本进行挂载
    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

      被挂载目标BucketEndpoint。

      0 0

      文件系统的选项。

    2. 保存/etc/fstab文件。执行mount -a -t fuse命令,如果没有报错,则说明设置正常。

    3. 上一步执行完成后,Ubuntu 14.04就能自动挂载了。CentOS 6.5还需要执行如下命令:

      chkconfig netfs on
    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就可以开机自动挂载了。

卸载已挂载的Bucket

您可以使用以下命令,卸载已挂载到本地的OSS文件系统。例如,卸载挂载在/tmp/ossfs路径下的文件系统。

umount /tmp/ossfs

常见问题

  • 本页导读 (1)
  • 前提条件
  • 挂载命令格式
  • 基础挂载
  • 配置文件挂载
  • ECSRAMRole挂载
  • 场景化挂载
  • 指定文件目录挂载
  • 指定配置文件挂载
  • 挂载时开启调试日志
  • 挂载时配置访问权限
  • 实用技巧
  • 设置开机自动挂载
  • 卸载已挂载的Bucket
  • 常见问题