将阿里云OSS挂载到ECS服务器目录

发布时间 2023-10-13 13:51:48作者: 第一夫人

想必很多小伙伴对阿里云云存储产品之一的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、关于挂载时候的,其他的选项、常见问题,可以查看阿里云官网查看选项、常见问题