使用ossfs将OSS Bucket挂载到Linux系统的本地目录

将Bucket挂载到指定目录。对于原来需要直接读写本地文件的应用程序,为了让应用程序能在不作修改的情况下直接访问对象存储OSS的数据,您可以使用ossfs将OSS的Bucket挂载到Linux系统中,并将其映射到本地目录,从而能够像处理本地文件那样直接操作OSS中的数据,实现文件共享。

功能原理

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

  • 支持POSIX文件协议标准的大部分功能,例如上传下载文件、目录,设置用户权限等。

  • 默认使用OSS的分片上传和断点续传功能上传文件。

  • 支持MD5校验,保证数据的完整性

运行环境

# 安装ossfs
wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.2_centos7.0_x86_64.rpm
yum install ossfs_1.91.2_centos7.0_x86_64.rpm
#查询是否安装成功
fusermount -V

返回结果如:fusermount version: 2.9.2,表示fuse满足版本要求。 

挂载访问

将Bucket名称以及具有该Bucket访问权限的RAM用户的AccessKey ID和AccessKey Secret信息存放在/etc/passwd-ossfs文件中,并设置文件的权限为640。

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

将Bucket挂载到指定目录。 

ossfs <BucketName> <mountfolder> -o url=<Endpoint>

参考:

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

如果您使用从阿里云购买的云服务器ECS来提供ossfs服务,您可以使用内网域名,但是需要注意,使用内网Endpoint要求您的ECS必须和即将挂载的Bucket处于同一地域。例如,在该示例中您可以将OSS Endpoint 修改为oss-cn-hangzhou-internal.aliyuncs.com,从而节省流量费用。有关OSS内网域名的更多信息,请参见访问域名和数据中心

增加参数 :-d -odbglevel=debug -ocurldbg -f 打印日志

您可以像访问本地文件系统一样读取Bucket中的对象。

  1. 查看文件列表。

    sudo ls -lh /tmp/ossfs

    image

    说明

    元数据操作(例如list directory)需要远程访问OSS服务器,存在网络延迟。

  2. 拷贝文件。

    sudo cp /tmp/ossfs/bird.jpeg /root

    将OSS中的bird.jpeg拷贝到/root目录中。

  3. 新增文件。

    sudo cp /root/forest.jpeg /tmp/ossfs

    即可将本机的forest.jpeg添加到挂载目录,并同步到OSS远程。

  4. 如果您不希望继续挂载此Bucket,您可以将其卸载。

    sudo fusermount -u /tmp/ossfs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值