将阿里云OSS挂载到ECS服务器目录
想必很多小伙伴对阿里云云存储产品之一的OSS很熟悉了,需要详细了解的,请移步阿里云官网OSS
本文主要介绍使用ossfs将阿里云OSS挂载到ECS服务器目录!操作之前,我们先来了解一些注意事项:
ossfs概述
ossfs能让您在Linux系统中,将对象存储OSS的存储空间(Bucket)挂载到本地文件系统中,您能够像操作本地文件一样操作OSS的对象(Object),实现数据的共享。
ossfs运行环境
ossfs基于fuse用户态文件系统开发,只能运行在支持fuse的机器上。
OSS提供了Ubuntu和CentOS系统的安装包,如果需要在其它环境下运行,可以通过源码方式构建目标程序。
ossfs支持在阿里云内网以及互联网环境下使用,在内网环境下时,建议使用内网访问域名,以提升访问速度和稳定性。
ossfs主要功能
ossfs基于s3fs构建,具有s3fs的全部功能。其中包括:
- 支持POSIX文件系统的大部分功能,例如上传下载文件、目录,设置用户权限等。
- 默认使用OSS的分片上传和断点续传功能上传文件。
- 支持MD5校验,保证数据完整性。
使用限制
- 不支持挂载归档型Bucket。
- 不适合高并发读写的场景。
- 编辑OSS内文件会导致文件被重新上传。
- 元数据操作(例如list directory)需要远程访问OSS服务器,所以性能较差。
- 重命名文件或文件夹可能会出错。若操作失败,可能会导致OSS和本地数据不一致。
- 多个客户端挂载同一个OSS Bucket时,数据一致性由您自行维护。建议您合理规划文件使用时间,避免出现多个客户端写同一个文件的情况。
- 不支持hard link。
- 如果您因意外中断了文件上传的过程,且未继续完成该文件的上传,则已上传的部分会以碎片(Part)的形式存储在OSS的存储空间(Bucket)中。如果您不再需要这些Part,建议您通过以下方式删除,以免产生额外的存储费用。
以上信息来自阿里云官网!
下面进入实际操作
1、根据自己的服务器操作系统,下载对应版本的安装包,官网提供这些版本【下载地址】,这里我下载CentOS 8.0 (x64)版本
wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.1_centos8.0_x86_64.rpm
2、进入刚刚的下载目录(我的在/home目录下),安装ossfs
yum install ossfs_1.91.1_centos8.0_x86_64.rpm
3、如果您希望上传文件的Content-Type和文件扩展名匹配,您需要添加mime.types文件。
yum install mailcap
4、配置OSS账号访问信息,将Bucket名称以及具有该Bucket访问权限的AccessKey ID和AccessKey Secret信息存放在/etc/passwd-ossfs文件中。文件的权限建议设置为640。
BucketName、yourAccessKeyId、yourAccessKeySecret请按需替换为您实际的Bucket名称、AccessKey ID和AccessKey Secret
sudo echo BucketName:yourAccessKeyId:yourAccessKeySecret > /etc/passwd-ossfs
sudo chmod 640 /etc/passwd-ossfs
5、将Bucket挂载到ECS服务器的指定目录,此处我使用/home/oss目录挂载
mkdir /home/oss
ossfs BucketName /home/oss -o url=Endpoint
6、验证挂载结果
阿里云控制台OSS看到的结果
可以看到OSS里面的文件和目录已经同步过来了
7、验证文件同步
在阿里云oss控制台新上传一个文件
服务器上查看,发现文件已经是同步过来了
在服务器上,拷贝一个文件到oss目录,刷新阿里云oss控制台,也可以看到刚刚拷贝的那个文件,说明服务器上更新文件,也可以同步
如果在服务器上使用rz命令上传的文件,是不会写入到oss目录的,不知道为什么。。。
在服务器上删除文件,也可以正常同步的
8、如果不需要了,也可以卸载
fusermount -u /home/oss
9、关于挂载时候的,其他的选项、常见问题,可以查看阿里云官网查看选项、常见问题