本文介绍ossfs的一些配置操作,您可以通过本文了解如何更好的使用ossfs。
前提条件
配置账号信息
通过ossfs访问OSS存储空间时,需要配置账号信息,也就是AccessKeyID和AccessKeySecret。这些账号信息需要按照特定的格式写到账号配置文件中。当挂载ossfs时,会从这个账号配置文件上获取账号信息,格式为$bucket_name:$access_key_id:$access_key_secret
。
- 同一个账号配置文件里可以保存多条账号信息,一条记录一行。ossfs会根据挂载的存储空间名称匹配到正确的账号上。
配置示例:
echo bucket-test-1:AAAIbZcdVCmQ****:AAA8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs echo bucket-test-2:BBBIbZcdVCmQ****:BBB8x0y9hxQ31coh7A5e2MZEUz**** >> /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs mkdir /tmp/ossfs-1 mkdir /tmp/ossfs-2 ossfs bucket-test-1 /tmp/ossfs-1 -ourl=http://oss-cn-hangzhou.aliyuncs.com ossfs bucket-test-2 /tmp/ossfs-2 -ourl=http://oss-cn-hangzhou.aliyuncs.com
- 当需要同时挂载多个存储空间时,您可以将所有的配置信息写到同一个账号配置文件里,也可以将不同的账号信息写到不同的账号配置文件中,通过-opasswd_file=xxx选项加载。
配置示例:
echo bucket-test-3:CCCIbZcdVCmQ****:CCC8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs-3 chmod 600 /etc/passwd-ossfs-3 mkdir /tmp/ossfs-3 ossfs bucket-test-3 /tmp/ossfs-3 -ourl=http://oss-cn-hangzhou.aliyuncs.com -opasswd_file=/etc/passwd-ossfs-3 echo bucket-test-4:DDDIbZcdVCmQ****:DDD8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs-4 chmod 600 /etc/passwd-ossfs-4 mkdir /tmp/ossfs-4 ossfs bucket-test-4 /tmp/ossfs-4 -ourl=http://oss-cn-hangzhou.aliyuncs.com -opasswd_file=/etc/passwd-ossfs-4
使用实例RAM角色访问
在云服务器ECS上,您还可以通过实例RAM角色的方式挂载ossfs。实例RAM角色允许您将一个角色关联到云服务器实例,在实例内部基于临时凭证STS访问OSS。临时凭证由系统自动生成和更新,应用程序可以使用指定的实例元数据URL获取临时凭证,无需特别管理。借助于RAM,一方面保证AccessKey安全,另一方面实现权限的精细化控制和管理。实例RAM角色详情请参见实例RAM角色。
下面以角色名为EcsRamRoleOssTest的RAM角色为例,来说明如何通过实例RAM角色挂载ossfs。
配置访问权限
- allow_other:赋予计算机上其他用户访问挂载目录的权限,但不包括目录内的文件。如果您要更改文件夹中的文件访问权限,请用chmod命令。该选项不需要设置选项值,如果需要启用,请直接添加-oallow_other选项。
- uid:设置文件夹属于某个用户时填写的用户uid。
- gid:设置文件夹属于某个用户时填写的用户gid。
- mp_umask:用来设定挂载点的权限掩码,只有当allow_other选项设置后,该选项才生效,默认值为000。使用方法与umask命令使用方式一致。例如需要设置挂载点的权限为770,则增加-oallow_other -omp_umask=007;需要设置挂载点的权限为700,则增加-oallow_other -omp_umask=077。
- 允许所有用户访问,即权限为777。
ossfs bucket_name mount_point -ourl=endpoint -oallow_other
- 只允许同组用户访问,即权限为770。
ossfs bucket_name mount_point -ourl=endpoint -oallow_other -omp_umask=007
- 挂载时指定为其他用户和组,同时只允许同组的用户访问,即权限为770。
以www用户为例说明,先通过id命令获取用户的uid和gid信息,之后在挂载时指定uid和gid参数。
id www uid=1000(www) gid=1000(web) groups=1000(web) ossfs bucket_name mount_point -ourl=endpoint -oallow_other -ouid=1000 -ogid=1000 -omp_umask=007
挂载指定文件目录
ossfs bucket:/prefix mount_point -ourl=endpoint
通过这个方式挂载时,需要确保存储空间里存在${prefix}/ 这样一个对象。可以通过ossutil的stat命令查询该对象是否存在。
ossfs bucket-ossfs-test:/folder /tmp/ossfs-folder -ourl=http://oss-cn-hangzhou.aliyuncs.com
开机自动挂载目录
使用Supervisor启动ossfs
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态。异常退出时能自动重启。使用Supervisor启动ossfs的步骤如下:
开启调试日志
- 在挂载目录时增加-d -odbglevel=debug -ocurldbg选项,ossfs会把日志写入系统日志中。
- CentOS系统
日志保存在/var/log/messages中。
- Ubuntu系统
日志保存在/var/log/syslog中。
- CentOS系统
- 在挂载目录时使用-d -odbglevel=debug -ocurldbg -f选项,ossfs会把日志输出到屏幕上。