LOGO

管雷鸣

技术总监 | Java

ESC 挂载 OSS为硬盘使用

ECS挂载OSS为当前磁盘,将附件存放于OSS独立出服务器,并ECS上挂载多个不同的文件夹于OSS上


服务器为CentOS 7.3  64位

屏幕快照 2017-09-13 上午9.47.59.png

参考

    https://github.com/aliyun/ossfs 
    https://help.aliyun.com/document_detail/32196.html



SSH远程服务器

1. 安装依赖库

sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel 
                 fuse-devel make openssl-devel


2. github上下载源码并编译安装

git clone https://github.com/aliyun/ossfs.git
cd ossfs
./autogen.sh
./configure
make
sudo make install


3. 创建 passwd-ossfs 文件

vim /etc/passwd-ossfs

然后写入配置数据,格式为:

绑定的OSS的Bucket:AccessKeyId:AccessKeySecret

如果此服务器上要有多个文件夹对应多个OSS Bucket,每个Bucket一行。我配置了两个OSS Bucket,分别为:

    uploads_bucket、 uploads_test_bucket
那么passwd-ossfs文件中的内容为:

uploadsbucket:AccessKeyId...:AccessKeySecret...
uploadstestbucket:AccessKeyId...:AccessKeySecret...


4. 改动passwd-ossfs的权限,看参考资料,此项比较重要

chmod 640 /etc/passwd-ossfs


5. 将一个空目录绑定到OSS Bucket

5.1 创建一个空目录 uploads

mkdir /www/uploads

5.2 将uploads这个空目录绑定到OSS中,名叫 uploadsbucket 的Bucket上

ossfs uploads /www/uploads -ourl=http://oss-cn-beijing.aliyuncs.com

其中
第一个参数 uploadsbucket 调用的 passwd-ossfs 中,配置好的,名为 uploadsbucket 的 OSS Bucket
第二个参数 /www/uploads 为要绑定ECS中的这个目录到OSS
第三个参数 -ourl 指定要绑定到哪个区域,若直接使用内网绑定,还可省去流量费

OSS Bucket 控制台信息示例:

1505382282942076585.png

例如,取内网的 uploadsbucket.oss-cn-beijing-internal.aliyuncs.com
将前缀 uploadsbucket 去掉,得到

oss-cn-beijing-internal.aliyuncs.com

便是可以用这个来配置 -ourl 这个参数


6.测试

创建一个目录,看同步的OSS Bucket (uploadsbucket)上是否也增加了一个目录

mkdir /www/uploads/testfile

OSS Bucket 控制台:

1505382562753014334.png

成功!

(经几个配置测试,挂载好后,有的要过个一两分钟才能生效,一挂载就建立文件夹,OSS没有任何反应,过两分钟再建立,OSS就有了)



7.若不想用了,取消挂载 OSS Bucket :

fusermount -u /www/uploads


2024-07-02