Linux上挂载阿里云OSS

有一个需求,我希望自己建一个目录页,类似网易开源镜像站那样的。把平时用到的软件包丢过去,有需要就去下载,走个 CDN 加速下载会比较快点,但是阿里云的服务器,没有数据盘,因为我也用不着,所以如果直接扔系统,可能系统挂了,这些东西就没了。于是想着是不是可以把云存储直接挂在到系统上使用呢?万能的谷歌一搜,发现阿里云的 OSS 还真有。

安装 ossfs

参考 GitHub

1.首先,创建一个和阿里云服务器在同一地区的 OSS,这样挂在内网写入还能免流量费。

2.去这里下载对应系统的包,我这里是 Ubuntu

3.然后安装

wget -c https://github.com/aliyun/ossfs/releases/download/v1.80.2/ossfs_1.80.2_ubuntu14.04_amd64.deb
sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi ossfs_1.80.2_ubuntu14.04_amd64.deb

4.将 accesskey 和 id写入到/etc/passwd-ossfs,并赋予其640权限

echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs

5.我直接挂在到/etc/fstab

ossfs#bucket /ftp/  fuse _netdev,url=https://oss-cn-qingdao-internal.aliyuncs.com,allow_other 0 0

5.跳过系统扫描目录

可以通过修改/etc/updatedb.conf让它跳过

1. 在`PRUNEFS = `后面加上`fuse.ossfs`
2. 在`PRUNEPATHS = `后面加上挂载的目录  

nginx 配置下打开目录

location /ftp/ {
autoindex on;
}

最终效果

考虑只有自己用,加个密码吧

apt-get install apache2-utils

然后

root@aliyun:/usr/local/nginx/conf/vhost/auth# htpasswd -b -c /usr/local/nginx/conf/vhost/auth/admin.pass username passwd
Adding password for user admin

nginx 修改为

location ~ ^/ftp/.* {
auth_basic "auth";
auth_basic_user_file /usr/local/nginx/conf/vhost/auth/admin.pass;
autoindex on;
}

location ~ ^/ftp/ 表示针对该目录下所有文件都进行保护。