最近了解到阿里云OSS这个云储存服务,发现其上传下载速度很快很稳定,而且储存相对更加安全,如果把服务器上网站等的一些扩展文件存储在OSS上可以给服务器减轻不少负担而且访问速度快。虽然OSS操作难度较大,但还是决定部署一下,毕竟可以带来不少的好处。此文以记录下阿里云OSS在服务器中的使用。
在阿里云购买对象储存OSS(初次使用买了入门体验储存包:40G,9元/年)后,在阿里云的对象储存管理后台可以进行管理,刚使用诈一看挺复杂,不知所措,经过一段学习摸索后才了解到大致的管理流程。
一、创建bucket和accesskey
如果整个OSS储存空间是个仓库,那么其中的概念bucket大致可以比喻为仓库的一个隔间,那么accesskey可以比喻为一把整个仓库或某个隔间的钥匙吧。
创建bucket和accesskey的过程有引导,挺简单
注意:创建完用户的key的时候记得立马保存好key的ID和密钥(只有一次保存机会)
设置用户的权限
创建完子用户的key后要赋予相应的权限才可以用来访问OSS储存空间。在用户右侧点击添加权限 可以在系统权限策略中选择预设的权限,但都比较粗糙,对于OSS只有完全管理(可以全权管理全部bucket)和只读(对所有bucket只读)两种。
如果已经符合你的要求那就直接用,如果需要更精确的授权可以自定义,比如设置某个用户只能管理某个bucket,那就需要自定义权限。
(可选)自定义权限
自定义操作在权限策略管理中,点击新建后这里选择脚本配置模式,然后写代码规则。
阿里云官方帮助文档中有详细介绍:权限策略基本元素。这里给出我总结的一般可用的规则(这里的规则都是针对某个具体的bucket,因此定义完后策略仅适用于个别用户):
①设置只能管理某个bucket(把其中的yourbucket换成你的bucket名称)
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:ListBuckets", "oss:GetBucketStat", "oss:GetBucketInfo", "oss:GetBucketAcl" ], "Resource": "acs:oss:*:*:*" }, { "Effect": "Allow", "Action": [ "oss:Get*", "oss:Put*", "oss:List*", "oss:DeleteObject" ], "Resource": [ "acs:oss:*:*:yourbucket", "acs:oss:*:*:yourbucket/*" ] } ] }
②设置只能管理某个bucket,但不能删除任何内容(可读可上传)。将上面代码中的"oss:DeleteObject"
一行(还有上面的逗号)删除即可。
二、挂载OSS到服务器
到目前为止,OSS阿里云端已经配置好了,接下来需要将OSS挂载到服务器上才能在服务器使用上OSS。挂载需要使用ossfs这个工具,可以在GitHub或阿里云下载,相应的也有安装教程。因为具体细节因人而异,笔者这里写下自己安装配置过程(CentOS 7.0+)。(此外,如果安装有宝塔面板的话可以直接在面板软件商店中安装)
(一)安装ossfs
1.下载安装包后上传到服务器,执行安装命令
sudo yum localinstall [your_ossfs_package]
2.写入bucket和accesskey信息到文件passwd-ossfs
vi /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs
其中写入 passwd-ossfs 的信息格式为
bucket1:access_key_id1:access_key_secret1 bucket2:access_key_id2:access_key_secret2
3.挂载bucket到指定目录
ossfs [bucket-name] [your-dir] -ourl=http://[EndPoint]
其中EndPoint(地域节点)可以在阿里云管理后台看到,建议使用内网的那个
另外,这样挂载的目录所有者是当前用户(一般是root),如果要能让其它用户能访问这个目录可以在末尾加卡
-o allow_other
(不会影响里面文件权限,不用担心);如果目标目录不是空目录还需要加-o nonempty
(注意首次挂载都会清空文件夹)。其它问题可见常见问题
(二)设置开机自动挂载
安装ossfs并挂载好OSS后,如果服务器重启了,那么就又需要手动挂载,因此设置开机后自动挂载很有必要。办法是通过脚本自启动:
1.在/etc/init.d/目录下创建文件ossfs
touch /etc/init.d/ossfs
2.写入自启动命令(参照模板文件)
vi /etc/init.d/ossfs chmod a+x /etc/init.d/ossfs
注意:因为指定目录一般总是非空的,所以启动命令末尾最好再加上
-o nonempty
3.设置开机自启
chkconfig ossfs on
测试看看,如果不行自行调节,可以参照帮助文档
其他命令
- 取消挂载某个bucket(直接取消挂载对应的目录即可):
fusermount -u [your-dir]
最后
阿里云OSS挂载到服务器上后可以配合许多其它软件使用,比如服务器上搭建的私人网盘,个人图库,也可以用来备份网站数据。