使用ossfs将Bucket挂载到统信UOS系统本地目录

简介

对于那些需要直接读写本地文件的应用程序,ossfs 提供了一种方便的解决方案,使应用程序在无需修改的情况下直接访问阿里云对象存储 OSS 的数据。通过使用 ossfs,您可以将 OSS 的 Bucket 挂载到 Linux 系统,并将其映射到本地目录。这样,您可以像操作本地文件一样处理 OSS 中的数据,从而实现文件共享。这种方式不仅简化了对 OSS 数据的访问,还能够利用现有的应用程序逻辑,无需重新开发。

功能原理

s3fs是一个用户空间文件系统(userspace filesystem),它允许您在Linux系统上将Amazon S3存储桶挂载为本地文件系统。ossfs基于s3fs构建,具有s3fs的全部功能。其中包括:

  • 支持POSIX文件协议标准的大部分功能,例如上传下载文件、目录,设置用户权限等。
  • 默认使用OSS的分片上传和断点续传功能上传文件。
  • 支持MD5校验,保证数据的完整性

运行环境

ossfs 基于 FUSE(Filesystem in Userspace)用户态文件系统开发,因此只能运行在支持 FUSE 的机器上。ossfs 提供了适用于 Ubuntu 和 CentOS 系统的安装包。如果需要在其他环境中运行,可以通过源码构建目标程序。
由于本次使用的是统信 UOS 系统,官方未提供相应的 RPM 包,因此需要通过源码安装的方式来部署 ossfs

安装ossfs

安装依赖

sudo apt-get install automake autotools-dev g++ git libcurl4-gnutls-dev \
libfuse-dev libssl-dev libxml2-dev make pkg-config

源码下载

git clone https://github.com/aliyun/ossfs.git
cd ossfs

执行脚本

[root@iZ7xvctj4iyrm3q7v3s6ikZ ossfs]# ./autogen.sh

执行完后会生成文件
image.png

编译安装

[root@iZ7xvctj4iyrm3q7v3s6ikZ ossfs]# ./configure  #会检查依赖
[root@iZ7xvctj4iyrm3q7v3s6ikZ ossfs]# make
[root@iZ7xvctj4iyrm3q7v3s6ikZ ossfs]# sudo make install

安装验证

ossfs  --help

ECS挂载OSS

配置账号访问信息

echo BucketName:yourAccessKeyId:yourAccessKeySecret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs

创建挂载目录

mkdir /tmp/ossfs

挂载单个bucket

ossfs bucket-test /tmp/ossfs -o url=http://oss-cn-shanghai-internal.aliyuncs.com -o allow_other

挂载后,从本地磁盘拖文件到 /tmp/ossfs 目录下,目录、文件权限将默认为 640,所以需要 chmod 进行设置。后期程序在该目录执行的写操作,将为 755
参数说明

  • url:#可以使用内网,免去流量费用
  • allow_other:允许非root用户操作避免因权限问题导致无法操作oss目录,如Nginx

挂载多个bucket

echo bucket-test-1:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs
echo bucket-test-2:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** >> /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs

mkdir -p /ossfs/bucket-test-1
mkdir -p /ossfs/bucket-test-2

ossfs bucket-test-1 /ossfs/bucket-test-1 -o url=http://oss-cn-shanghai-internal.aliyuncs.com 
ossfs bucket-test-2 /ossfs/bucket-test-2 -o url=http://oss-cn-shanghai-internal.aliyuncs.com 

指定挂载bucket和路径

ossfs bucket-test-1:/app_files/ /ossfs/bucket-test-1 -o url=http://oss-cn-shanghai-internal.aliyuncs.com 

卸载OSS

umount -l /tmp/ossfs  #mkdir 创建的目录
fusermount -u /tmp/ossfs  #或者使用该命令卸载
posted @ 2024-08-01 17:24  &UnstopPable  阅读(16)  评论(0编辑  收藏  举报