阿里云OSS挂载到Linux

0. 阅读本文可以得到什么

  1. 学会使用阿里云OSS挂载到Linux
  2. 支持Linux中启动的Docker容器挂载OSS路径,得到一个使用OSS的容器
  3. 避开LabelStudio挂载数据集的坑

1. 简介

前接LabelStudio上文,图片数据集的加载太慢,购买了OSS,但是发现两处大坑:

  1. 开源版本的LabelStudio无法直接使用阿里云的AWS协议挂载
  2. 在云平台操作OSS直接挂载到ECS实例,每天的费用要几元,比OSS的使用费用还高。

经过一番研究,阿里云官方提供了ossfs挂载工具,可以在Linux上直接挂载为本地磁盘,读写性能可能有损耗,但至少能用!

2. 在云平台配置权限(如果是自有主机则跳过)

  1. 对象存储bucket名称
  1. 角色创建并授权

https://ram.console.aliyun.com/roles 在RAM控制台创建角色,例如oss-manager,配置OSS的 AliyunOSSFullAccess 权限

  1. 角色权限在OSS bucket中配置

https://oss.console.aliyun.com/bucket/oss-cn-beijing/你的bucket名称,注意替换/permission/policy 配置允许特定的服务器或者IP使用,推荐读写权限

2. 安装ossfs

OSSFS官方安装文档

本人成功案例:使用源码安装方式成功在阿里云ECS Ubuntu20系统中成功安装,其它方式缺lib库

2.ossfs配置与挂载命令

  1. 提前在Linux中创建对应目录,例如 /home/label-studio/files/ossfs
arduino 复制代码
mkdir -p /home/label-studio/files/ossfs
  1. 执行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 

OSSFS官方配置挂载文档

宿主机确认挂载效果

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
# 权限与宿主机结果一致
相关推荐
中等生6 分钟前
Pandas 与 NumPy:数据分析中的黄金搭档
后端·python
用户83562907805118 分钟前
Python查找替换PDF文字:告别手动,拥抱自动化
后端·python
小猪乔治爱打球19 分钟前
[Golang 修仙之路] 分布式专题:分布式锁
后端·面试
似水流年流不尽思念20 分钟前
LBCC和MVCC的区别和优缺点
后端
愿你天黑有灯下雨有伞26 分钟前
一种基于注解与AOP的Spring Boot接口限流防刷方案
java·spring boot·后端
拾忆,想起38 分钟前
Redis复制延迟全解析:从毫秒到秒级的优化实战指南
java·开发语言·数据库·redis·后端·缓存·性能优化
掘根43 分钟前
【CMake】缓存变量
java·后端·spring
前端开发爱好者1 小时前
下一代全栈框架:Deno + Vite 的结合体!
前端·javascript·后端
Java中文社群2 小时前
面试官:如何实现动态线程池的任务编排?
java·后端·面试
脚踏实地的大梦想家2 小时前
【Go】P2 Golang 常量与变量
开发语言·后端·golang