挂载OSS到ECS[阿里云]

{{ time }}

听说OSS可以挂载到ECS当盘使,原来是真的。

优点如下:

1.挂完了是不是看着很爽:

2.可以挂载到非阿里云主机

缺点如下:

1.随机或者追加写文件会导致整个文件的重写(官方说法)

2.性能差点儿,因为是远程的

3.文件夹非原子操作:如咱们一般的电脑,mv一个有很多子项的文件夹,相当于操作一个文件;但是在OSS里这个mv操作,对每个子项都要单独搞一下。

以CentOS8为例,实际挂载步骤如下:

Step1 下载ossfs最新源代码至ECS,Github就有; 在ECS解压缩该zip文件至【目录A】

Step2 用SSH连接ECS,cd至【目录A/ossfs-master】, 并运行如下指令

sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel \
                 fuse-devel make openssl-devel
./autogen.sh
./configure
make
sudo make install

Step3进入阿里云访问控制,建立RAM用户,建立并记录AccessKeyId和AccessKeySecret;给该RAM用户添加OSS访问权限(控制台的那种就行,不用编程访问的)

Step4 进入阿里云OSS,记录你的bucket的名字; 记录endpoint;

endpoint如果你的内网能连接ecs,就可以用内网;不行就外网的。

Step5 建立如下文件(若不存在),并添加可执行权限

touch /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs

Step6 编辑/etc/passwd-ossfs,按行添加,每行都像下面这么写,可以添加多个oss

你的AccessKeyId:你的AccessKeySecret > /etc/passwd-ossfs

Step7 挂载指令如下

mkdir 你的本地路径
ossfs bucket的名字 你的本地路径 -ourl=你的endpoint

示例如下

mkdir /mnt/oss
# 像下面这行可以添加至/etc/rc.d/rc.local(须为本文件添加可执行权限),以开机自动挂载
ossfs my-bucket-name /mnt/oss -ourl=http://oss-cn-hangzhou.aliyuncs.com

值得一提的是,我记得挂载后,/mnt/oss的权限将被修改为700;这样就和一些软件不兼容了。

若要让挂载文件夹的权限是777,可使用如下指令挂载:

ossfs bucket的名字 你的本地路径 -ourl=你的endpoint -o allow_other

然后就可以在ECS用/mnt/oss访问你的OSS啦

参考文献:

https://github.com/aliyun/ossfs/blob/master/README-CN.md