在实际使用过程中,为满足不同场景下对存储空间(OSS Bucket)的挂载需求,需对ossfs 2.0配置文件进行针对性配置,然后在挂载存储空间(OSS Bucket)时,引用该配置文件即可完成挂载。本文将为您介绍,如何通过挂载选项,生成适用不同场景的ossfs 2.0配置文件。
创建配置文件
一个配置文件仅能挂载一个Bucket。若要挂载多个Bucket,需创建多个配置文件,对每个Bucket分别进行配置,文件名与路径可自定义。挂载时引用相应的配置文件,就能实现多个Bucket的挂载。
您可按需自由设定ossfs 2.0配置文件的文件名与路径。例如,创建/etc/ossfs2.conf文件作为配置文件。
sudo touch /etc/ossfs2.conf配置访问凭证
Accesskey
ossfs 2.0.1及后续版本推荐您使用更安全便捷的环境变量方式配置RAM用户的AccessKey(访问密钥) 挂载OSS Bucket。如已通过环境变量配置,无需在配置文件中重复设置。
环境变量
export OSS_ACCESS_KEY_ID=LTAI******************
export OSS_ACCESS_KEY_SECRET=8CE4**********************配置文件
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
--oss_bucket=bucketName
--oss_access_key_id=AAAI************
--oss_access_key_secret=AAA8x*************************ECSRAMRole
ossfs 2.0.2及后续版本支持在配置文件中使用ECSRAMRole(实例RAM角色)完成访问凭证配置。
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
--oss_bucket=bucketName
--ram_role=EcsRamRoleOssTest外部进程
ossfs 2.0.5及后续版本支持通过外部命令启动一个进程,该进程与ossfs进程是独立的,称为外部进程。外部进程执行后,通过标准输出将结果返回给进程的启动者,即ossfs。
生成凭证的命令不可由未经批准的进程或用户访问,否则可能存在安全风险。
生成凭证的命令不会将任何敏感信息写入stderr,因为该信息可能会被捕获或记录,可能导致其向未经授权的用户公开。
外部命令返回的凭证,支持长期凭证和临时凭证,格式如下:
长期凭证
{
"AccessKeyId" : "ak",
"AccessKeySecret" : "sk",
}临时凭证
{
"AccessKeyId" : "ak",
"AccessKeySecret" : "sk",
"Expiration" : "2025-12-29T07:45:02Z",
"SecurityToken" : "token",
}其中Expiration为使用ISO8601格式的UTC时间。
外部进程配置格式如下:
--credential_process=user-cmd其中use-cmd请根据实际使用方式进行配置。配置要求如下:
如果参数或文件名包含空格,请将对应的字符串使用双引号("")括起来。
执行程序必须是完整路径。例如
/bin/bash、/bin/echo、/bin/curl等。请勿在命令中包含任何环境变量。例如不能包含
$HOME等。
常用使用方式如下:
使用一个临时文件/etc/creds.txt保存凭证时,配置命令为
--credential_process=/bin/cat /etc/creds.txt。通过自定义服务返回访问凭证时,配置命令为
--credential_process=/bin/curl <自定义服务地址>。
ossfs只会校验参数是否为合法的JSON以及是否包含对应合法字段,请确保您配置的获取命令能输出完整有效的访问凭证。例如当使用临时文件的方式时,需保证对应文件的更新是原子的,或通过flock等机制保证读写互斥。
配置文件格式
格式说明
--为挂载选项前缀,<option>为挂载选项名称,[=<value>]中value为挂载选项值,[]代表挂载选项值为可选。
--<option>[=<value>] 配置示例
# Bucket所处Endpoint(地域节点)
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
# Bucket名称
--oss_bucket=bucketName
# 访问密钥AccessKey ID和AccessKey Secret(可选)。对于ossfs 2.0.1及后续版本的用户,可通过环境变量来配置访问凭证,无需在配置文件中进行设置。
--oss_access_key_id=AAAI************
--oss_access_key_secret=AAA8x*************************常用配置示例
查看Bucket的Endpoint请进入Bucket列表页面,选择目标Bucket并进入,接着单击左侧导航栏的概览选项,在概览页的访问端口栏中即可查看目标Bucket所处的地域节点。如图所示,以杭州地域Bucket为例。

请打开已创建的ossfs 2.0配置文件,参照以下示例(均以杭州地域内网Endpoint为例)配置并保存。内网和OSS加速器Endpoint仅支持同地域VPC内实例挂载,数据传输更快速、稳定;不建议ossfs配合外网Endpoint使用,受高延迟和不稳定的Internet网络连接影响,可能会出现各种卡顿问题。
挂载整个Bucket
挂载整个Bucket中的所有目录文件到本地。
# Bucket所处Endpoint(地域节点)
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
# Bucket名称
--oss_bucket=bucketName
# 访问密钥AccessKey ID和AccessKey Secret(ossfs 2.0.1及后续版本该配置项可选)
--oss_access_key_id=LTAI******************
--oss_access_key_secret=8CE4**********************挂载Bucket中的指定目录
挂载Bucket时,指定目标Bucket中的特定目录挂载到本地。
# Bucket所处Endpoint(地域节点)
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
# Bucket名称
--oss_bucket=bucketName
# OSS文件目录路径(可选)
--oss_bucket_prefix=folder-test/folder-prefix/
# 访问密钥AccessKey ID和AccessKey Secret(ossfs 2.0.1及后续版本该配置项可选)
--oss_access_key_id=LTAI******************
--oss_access_key_secret=8CE4**********************挂载Bucket并配置内存限制
在挂载Bucket时,分配指定的内存给ossfs 2.0进程使用。
若不配置内存使用限制,ossfs 2.0默认会以性能优先进行调优,最大会使用约8 GB内存用于数据读写,从而获取最优性能。如果您的内存资源有限,建议配置total_mem_limit选项,以免出现OOM(内存不足)问题。
# Bucket所处Endpoint(地域节点)
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
# Bucket名称
--oss_bucket=bucketName
# 内存限制参数,单位为字节。(可选)
--total_mem_limit=4294967296
# 访问密钥AccessKey ID和AccessKey Secret(ossfs 2.0.1及后续版本该配置项可选)
--oss_access_key_id=LTAI******************
--oss_access_key_secret=8CE4**********************挂载Bucket并开启调试日志
在挂载Bucket时,将日志级别指定为debug,同时自定义日志存放路径。
# Bucket所处Endpoint(地域节点)
--oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com
# Bucket名称
--oss_bucket=bucketName
# 日志存放路径(可选),请确保 /tmp/log 目录存在。
--log_dir=/tmp/log/ossfs2
# 日志级别(可选)
--log_level=debug
# 访问密钥AccessKey ID和AccessKey Secret(ossfs 2.0.1及后续版本该配置项可选)
--oss_access_key_id=LTAI******************
--oss_access_key_secret=8CE4**********************挂载并配置Bucket访问权限
ossfs 2.0挂载默认允许所有用户读写所有文件,若您需要更严格的权限需求,请参考如下配置。以下配置示例仅适用于ossfs 2.0.1及后续版本。
挂载整个Bucket中的所有目录到本地,同时限制非root用户读写。
# Bucket所处Endpoint(地域节点) --oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com # Bucket名称 --oss_bucket=bucketName # 禁止非root用户(挂载用户)访问 --allow_other=false # 全局文件夹权限属性 --dir_mode=0755 # 全局文件权限属性 --file_mode=0644 # 访问密钥AccessKey ID和AccessKey Secret(ossfs 2.0.1及后续版本该配置项可选) --oss_access_key_id=LTAI****************** --oss_access_key_secret=8CE4**********************挂载整个Bucket中的所有目录到本地,仅允许root及特定用户读写,其他用户只读。
# Bucket所处Endpoint(地域节点) --oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com # Bucket名称 --oss_bucket=bucketName # 全局文件夹权限属性 --dir_mode=0755 # 全局文件权限属性 --file_mode=0644 # 特定用户uid和gid(可以使用id命令获取对应用户的uid和gid) --uid=1000 --gid=1000 # 访问密钥AccessKey ID和AccessKey Secret(ossfs 2.0.1及后续版本该配置项可选) --oss_access_key_id=LTAI****************** --oss_access_key_secret=8CE4**********************
后续步骤
完成ossfs 2.0的安装与配置后,即可将Bucket挂载到本地Linux系统中。具体操作,请参见挂载存储空间。
相关文档
更多有关ossfs 2.0挂载选项说明,请参见挂载选项说明。