0. 阅读本文可以得到什么
- 学会使用阿里云OSS挂载到Linux
- 支持Linux中启动的Docker容器挂载OSS路径,得到一个使用OSS的容器
- 避开LabelStudio挂载数据集的坑
1. 简介
前接LabelStudio上文,图片数据集的加载太慢,购买了OSS,但是发现两处大坑:
- 开源版本的LabelStudio无法直接使用阿里云的AWS协议挂载
- 在云平台操作OSS直接挂载到ECS实例,每天的费用要几元,比OSS的使用费用还高。
经过一番研究,阿里云官方提供了ossfs挂载工具,可以在Linux上直接挂载为本地磁盘,读写性能可能有损耗,但至少能用!
2. 在云平台配置权限(如果是自有主机则跳过)
- 对象存储bucket名称

- 角色创建并授权
https://ram.console.aliyun.com/roles
在RAM控制台创建角色,例如oss-manager,配置OSS的 AliyunOSSFullAccess
权限
- 角色权限在OSS bucket中配置
https://oss.console.aliyun.com/bucket/oss-cn-beijing/你的bucket名称,注意替换/permission/policy
配置允许特定的服务器或者IP使用,推荐读写权限
2. 安装ossfs
本人成功案例:使用源码安装
方式成功在阿里云ECS Ubuntu20系统中成功安装,其它方式缺lib库
2.ossfs配置与挂载命令
- 提前在Linux中创建对应目录,例如
/home/label-studio/files/ossfs
arduino
mkdir -p /home/label-studio/files/ossfs
- 执行ossfs挂载命令
ruby
ossfs bucket名称 /home/label-studio/files/具体目录名 -o url=http://oss-cn-beijing.aliyuncs.com -o ram_role=http://100.100.100.200/latest/meta-data/ram/security-credentials/你创建的角色名 -o allow_other
参数解释
参数解释
ossfs \
对象存储bucket名称 \
/home/label-studio/files/具体目录名 \ # 必须为Linux的绝对路径
-o url=http://oss-cn-beijing.aliyuncs.com \ # OSS创建的区域地
-o ram_role=http://100.100.100.200/latest/meta-data/ram/security-credentials/你创建的角色名 \
-o allow_other
宿主机确认挂载效果
ls -ll /home/label-studio/files/具体目录名
ruby
root@daozi25:/home/label-studio/files# ls -ll
total 13
drwxrwxrwx 1 root root 4096 Jan 1 1970 ossfs
容器挂载&确认效果
容器启动时挂载加上参数-v /home/label-studio/files/具体目录名:/label-studio/files/具体目录名
bash
# 登陆容器查看
docker exec -it
ls -ll /label-studio/files
# 权限与宿主机结果一致