目录
简介
对于那些需要直接读写本地文件的应用程序,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
执行完后会生成文件
编译安装
[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 #或者使用该命令卸载
本文来自博客园,作者:&UnstopPable 转载请注明原文链接:https://www.cnblogs.com/Unstoppable9527/p/18337076
标签:UOS,ossfs,Bucket,OSS,bucket,test,挂载,目录 From: https://www.cnblogs.com/Unstoppable9527/p/18337076