ECS挂载OSS为当前磁盘,将附件存放于OSS独立出服务器,并ECS上挂载多个不同的文件夹于OSS上
服务器为CentOS 7.3 64位
参考
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 控制台信息示例:
例如,取内网的 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 控制台:
成功!
(经几个配置测试,挂载好后,有的要过个一两分钟才能生效,一挂载就建立文件夹,OSS没有任何反应,过两分钟再建立,OSS就有了)
7.若不想用了,取消挂载 OSS Bucket :
fusermount -u /www/uploads