我在上一篇博客Linux本地数据上传到阿里云OSS中介绍了如何将linux本地的数据上传到阿里云的OSS,在这篇博客中,我将介绍如何将上传上去的数据,挂载到本地来,从而达到能从本地访问数据的目的。
一、非自动挂载
非自动挂载就是每次开机都需要自己再次进行挂载,不能长期保持挂载的状态
第一步,找到 /etc/passwd-ossfs 这个文件,如果没有,请创建,这个文件是用来存放你想要挂载的bucket的名字以及你阿里云账户的access-key-id和access-key-secret的信息。使用下述命令将相关信息写入:
echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
//上面语句的含义就是使用echo命令配合 > 重定向符将中间那部分你的个人信息写入/etc/passwd-ossfs文件中
//my_bucket是你阿里云OSS上想要挂在下来的bucket的名字
//my-access-key-id和my-access-key-secret是你阿里云账户的access key和secret key,需要你去你自己的账户上去查找。access key 和secret key都是用来对你的身份进行验证的,相当于你传数据到阿里云上时的钥匙,这个钥匙能唯一确定你的OSS。最新版的阿里云官网,你可以在下面这个地方的accesskey里找到
第二步,将该文件的权限设置成640,命令如下
chmod 640 /etc/passwd-ossfs
第三步,将oss bucket 挂载到指定目录,命令如下
ossfs my_bucket /home/test -ourl=http://vpc100-oss-cn-beijing.aliyuncs.com -o allow_other
//上述语句的含义就是将我的一个名叫my_bucket的bucket挂载到本地的/home/test文件夹下,并允许其它用户访问
//-ourl参数设置的是你的endpoint。这一步很重要,你的endpoint,是由你的实际OSS区域确定的。如果你购买了阿里云ECS服务,且是将你ECS主机上的数据上传到OSS,那么这里设置http://oss-cn-beijing-internal.aliyuncs.com;如果你不仅购买了ECS,还设置有VPC专有网络,那么此处设置http://vpc100-oss-cn-beijing.aliyuncs.com;如果你是将自己的服务器(并不是阿里云的ECS主机)比如你学院里的机房上的数据上传到OSS,那么这里设置http://oss-cn-beijing.aliyuncs.com。这些信息都可以在你的OSS账户里面查到。endpoint中的beijing说明我购买的是OSS区域在华北,如果你的在杭州,那么就改为hangzhou。这些都是可以在你的账户里查到的。
// -o allow_other是为了允许其他用户访问挂载文件夹
只要你的参数设置的是正确的,经过上面几步,你就可以成功完成挂载了。若你想卸载挂载下来的目录,就可以试用下下面的命令
第四步,卸载bucket
umount /home/test //如果你是root用户,请使用这条命令
fusermount -u /home/test //如果你是普通用户,请使用这条命令
//这里以 /home/test 文件夹为例,实际中,你要写你实际挂载的文件夹
二、自动挂载
如果每次登入的时候都要手动挂载,实在是太麻烦了,因此,我们需要通过一些设置,完成自动挂载。
第一步,请按照前一部分“非自动挂载”第一步和第二步操作,流程完全一样
第二步,根据操作系统的不同,有如下不同的操作
Step2A:这一大步专门针对ubuntu14.04和centos6.5
1. 首先,你要安装ossfs,针对centos6.5的安装,我也写了份教程,请移步于此在Centos6.5上安装ossfs,安装过程很简单。其他操作系统我不清楚,但是应该都大同小异,不行去网上找~~
2. 然后,你需要在/etc/fstab文件中(如果没有则创建)中写入下面的内容
ossfs#your_bucket:your_dir your_mount_point fuse _netdev, url=your_url, uid=user_id, gid=group_id, umask=007, allow_other 0 0
//注意,上述命令只有一行,不是两行,也没有换行,fuse和_netdev之间是有空格的
//your_bucket是你想挂载的bucket,your_dir是目标bucket下你想挂载的目录
//your_mount_point是你在本地的挂载点,表示你想把OSS上的数据挂载这个文件夹下
//your_url 是你的endpoint。这一步很重要,你的endpoint,是由你的实际OSS区域确定的。如果你购买了阿里云ECS服务,且是将你ECS主机上的数据上传到OSS,那么这里设置http://oss-cn-beijing-internal.aliyuncs.com;如果你不仅购买了ECS,还设置有VPC专有网络,那么此处设置http://vpc100-oss-cn-beijing.aliyuncs.com;如果你是将自己的服务器(并不是阿里云的ECS主机)比如你学院里的机房上的数据上传到OSS,那么这里设置http://oss-cn-beijing.aliyuncs.com。这些信息都可以在你的OSS账户里面查到。endpoint中的beijing说明我购买的是OSS区域在华北,如果你的在杭州,那么就改为hangzhou。这些都是可以在你的账户里查到的。
//如果你想挂载下来的目录属于某个用户,则可以设置uid和gid参数。user_id和group_id是用户的uid和gid参数(通过id user_name命令即可查看)
//上面的umask是用来设置挂载下来的文件夹及文件的权限的。比如如果你想挂载下的文件夹的权限为750,你就设置umask=027,也即777-750。一定不能直接设置umask=750,而是要用777减去你想赋予的权限,也即777-750!
//allow_other是为了允许其他用户访问挂载文件夹
//举例说明,下述语句就是将一个叫做test的bucket上面的/data文件夹,挂载到了本地的/home/my_data文件夹;而且我使用的是阿里云的ECS主机,还设置有VPC专有网络;挂载下来的文件夹属于536组的536用户,访问权限为700(即仅有文件夹所有者536用户可以读、写或执行,其余人均无法访问)
ossfs#test:/data /home/my_data fuse _netdev,url=http://vpc100-oss-cn-beijing.aliyuncs.com,uid=536,gid=536,umask=077,allow_other 0 0
3. 按照上面的指示完毕后,保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。可能需要sudo权限(即可能需要运行sudo mount -a命令)。到这一步,ubuntu14.04就能自动挂载了。centos6.5还需要执行下面的命令:
4. chkconfig netfs on 。同样地,此命令可能需要sudo权限
Step2B:这一大步专门针对centos7.0及以上的系统
1. 首先,你要安装ossfs,针对centos6.5的安装,我也写了份教程,请移步于此在Centos6.5上安装ossfs,安装过程很简单。其他操作系统我不清楚,但是应该都大同小异,不行去网上找~~
2. 在/etc/init.d/目录下建立文件ossfs,并把这个链接处模板文件中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。字段的含义和设置方法与Step2A的第2步完全相似。
3. 执行命令:chmod a+x /etc/init.d/ossfs
//上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。
4. 执行命令:chkconfig ossfs on
//上述命令是把ossfs启动脚本作为其他服务,开机自动启动。
//Step2B我未实操过,因此不敢保证一定可行。这是官方文档上面的说明
好了,现在ossfs就可以开机自动挂载了。总结起来,如果您是ubuntu14.04和centos6.5,您需要执行第一步+ Step 2A;如果您是centos7.0系统,您需要执行第一步 + Step 2B。
第三步,卸载bucket:
sudo umount /home/my_data #root用户使用
//上述命令即是将刚才挂载下来的/home/my_data文件夹卸载掉