使用OSS快速搭建个人网盘
- 一、基础概要
- 1. 主要的存储类型
- 1.1 块存储
- 1.2 文件存储
- 1.3 对象存储
- 2. 对象存储OSS
- 2.1 存储空间
- 2.2 地域
- 2.3 对象
- 2.4 读写权限
- 2.5 访问域名(Endpoint)
- 2.6 访问密钥
- 2.7 常用功能
- (1)创建存储空间
- (2)上传文件
- (3)列举文件
- (4)搜索文件
- (5)分享文件
- (6)下载文件
- (7)删除文件
- 2.8 资源访问方式
- 3. 个人网盘架构
- 3.1 Cloudreve
- 3.2 ossfs
- 二、基于OSS快速搭建个人网站
- 1. 登录OSS控制台
- 2. 创建OSS Bucket
- 3. 安装Cloudreve
- 3.1 下载安装包
- 3.2 解压
- 3.3 授权
- 3.4 验证Cloudreve
- 4. 安装ossfs
- 4.1 下载ossfs
- 4.2 安装ossfs
- 4.2.1 删除过期.repo
- 4.3 安装ossfs
- 4.4 配置ossfs
- 5. 挂载OSS Bucket
- 5.1 创建挂载点
- 5.2 手动挂载OSS Bucket
- 5.3 设置开机自动挂载
- 6. 配置个人网盘
- 6.1 运行Cloudreve
- 6.2 配置Cloudreve
- 6.2.1 配置存储策略
- 6.2.2 配置用户组
- 6.2.3 上传文件
- 6.2.4 OSS验证结果
一、基础概要
1. 主要的存储类型
不管是本地存储还是在云环境中,都有三种主要的存储类型: 块存储、文件存储和对象存储。
1.1 块存储
块存储是一种将数据存储为固定大小块的数据存储方式。
块存储将数据分成多个块,每个块的大小通常是固定的,比如4KB、8KB、16KB等。
块存储的数据结构相对固定,无法进行自由的调整。
块存储通常用于文件系统、关系型数据库等领域,常常用于存储大量的数据,以提高数据读写效率。
块存储的优势在于存储效率较高,可以快速存储和检索数据。
1.2 文件存储
文件存储是一种将数据存储为文件的数据存储方式。
文件存储将数据分成多个文件,每个文件可以包含多个数据块。文件存储通常用于存储大量的数据,可以通过文件系统等方式进行管理和访问。
文件存储的优势在于可以灵活地管理和访问数据,并且可以支持大规模的数据存储和管理
1.3 对象存储
对象存储是一种新型的云存储服务,它将数据存储为对象的形式,可以更好地满足大量非结构化数据存储和管理的需求。
对象存储将数据分为多个层次,每个层次都有自己的命名空间和属性。每个对象都有一个唯一的标识符,可以通过这个标识符访问和管理数据。
对象存储经济高效,是一个非常适用于静态数据的存储系统,其灵活性和扁平性意味着它可以通过扩展来存储极大量的数据。对象具有足够的信息供应用快速查找数据,并且擅长存储非结构化数据。
2. 对象存储OSS
2.1 存储空间
用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间,提供了标准存储、低频访问存储、归档存储、冷归档存储等存储类型。
个人网盘频繁的进行文件上传、下载、分享等操作;个人网盘需要频繁的进行文件上传、下载、分享等操作,该实验我们选择使用“标准存储”。
标准存储适用于各种社交、分享类的图片、音视频应用、大型网站、大数据分析等业务场景。
2.2 地域
OSS的数据中心所在物理位置。
阿里云地域选择可以遵循就近原则,优先选择更靠近用户群的地域节点。本实验地域优先选择“华东2(上海)” 。
2.3 对象
对象是OSS存储数据的基本单元,也被称为OSS的文件。
在个人网盘场景中,Object为存放在对象存储OSS Bucket中的照片文件、文本文件、视频文件等。
2.4 读写权限
通过Bucket ACL权限列表与权限描述,本实验设置Bucket ACL权限为私有,Bucket的拥有者可以对该Bucket内的文件进行读写操作,其他人无法访问该Bucket内的文件。
2.5 访问域名(Endpoint)
OSS对外服务的访问域名,Endpoint格式为:
外网Endpoint是oss-{Region}.aliyuncs.com
,
内网Endpoint是oss-{Region}-internal.aliyuncs.com
。
通过OSS内网地址访问OSS资源时,不收取流量费用。个人网盘场景中ECS实例部署的网盘软件可以调用OSS内网Endpoint。
2.6 访问密钥
简称AK,指的是访问身份验证中用到的AccessKeyId和AccessKeySecret。
OSS通过使用AccessKeyId和AccessKeySecret对称加密的方法来验证某个请求的发送者身份,可通过控制台创建AccessKey
AccessKey的来源有:
1、Bucket的拥有者申请的AccessKey。
2、被Bucket的拥有者通过RAM授权给第三方请求者的AccessKey。
3、被Bucket的拥有者通过STS授权给第三方请求者的AccessKey。
了解Endpoint和Accesskey的概念后,在使用SDK或工具时,需要配置访问域名(Endpoint)和访问密钥(Accesskey)。
2.7 常用功能
(1)创建存储空间
根据实际需求,创建不同类型的存储空间来存储不同的数据;
(2)上传文件
上传文件到OSS前,必须先在阿里云的任意一个地域创建一个存储空间。
创建存储空间后,您可以上传任意文件到该存储空间。有简单上传、分片上传、追加上传等方式;
(3)列举文件
Object上传成功后,默认按照字母序排列。可以列举出当前Bucket的所有Object、指定前缀的Object、指定个数的Object等;
(4)搜索文件
Object上传成功之后,可以通过搜索文件或者文件夹的方式进行搜索,快速查找目标文件;
(5)分享文件
文件上传至存储空间后,您可以将文件URL分享给第三方,供其下载或预览;
(6)下载文件
当文件(Object)上传至存储空间(Bucket)后,您可以将文件下载至浏览器默认路径或本地指定路径;
(7)删除文件
可以一次删除单个或者多个文件、碎片等。您可以定期删除过期文件,节省您的存储空间。
2.8 资源访问方式
阿里云对象存储OSS提供了多种访问及操作OSS资源的方式:阿里云控制台、OSS提供的工具、OSS提供的SDK。
3. 个人网盘架构
本实验使用ECS安装Cloudreve提供网盘服务,OSS提供存储服务。
当用户使用个人网盘时,访问部署Cloudreve ECS的公网IP地址即可完成文件上传、下载、删除、分享等服务。
3.1 Cloudreve
Cloudreve可快速构建出兼备自用或公用的网盘服务,通过多种存储策略的支持、虚拟文件系统等特性实现灵活的文件管理体验。
3.2 ossfs
ossfs能让您在Linux系统中,将对象存储OSS的存储空间(Bucket)挂载到本地文件系统中,能够像操作本地文件一样操作OSS的对象(Object),实现数据的共享。
二、基于OSS快速搭建个人网站
1. 登录OSS控制台
在阿里云台首页点击创建资源,会生成如下内容,AK ID和AK Secret
创建好之后,默认进入如下命令行界面,我们选择右侧的远程桌面
进入远程桌面后,单击桌面Chromium Web Browser图标,打开浏览器会自动打开阿里云RAM用户登录页面。
在登录界面输入刚刚生成资源中的用户名
输入密码
完成RAM用户登录后,然后单击浏览器阿里云控制台首页页面左上角图标
搜索框输入"OSS",单击搜索结果中的对象存储OSS,进入OSS管理控制台。
已经进入OSS管理控制台
2. 创建OSS Bucket
在OSS管理控制台,选择Bucket列表,单击创建Bucket,进行Bucket的创建。
创建Bucket时,填入Bucket名称,选择正确的地域,其它参数使用默认值,单击确认完成Bucket的创建。
这里名称我用九芒星的英文
ninemangstars
地域根据最开始生成的资源,找到对应的地域
个人网盘场景中需要和ECS实例处于同一个地域。这里用的上海
3. 安装Cloudreve
提交之后,在实验页面右侧导航栏,单击图标,切换至Web Terminal。
3.1 下载安装包
执行如下命令,下载cloudreve安装包。
wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/cloudreve_3.3.1_linux_amd64.tar.gz
wget 是Linux系统用于从Web下载文件的命令行工具。wget加上需要下载文件的链接,即可完成文件的下载。
返回结果如下所示,即完成cloudreve安装包的下载。
3.2 解压
下载完毕后,执行如下命令,解压cloudreve安装包。
tar -zxvf cloudreve_3.3.1_linux_amd64.tar.gz
tar是Linux系统用于解压与压缩命令,解压参数中
z表示配合解压.gz类型的压缩包
x表示解压缩
v表示显示解压缩详细信息
f表示被处理文件。
返回结果如下所示,即完成cloudreve安装包的解压。
3.3 授权
执行如下命令,给cloudreve授予权限。
chmod +x ./cloudreve
chmod用于改变文件或目录的访问权限,+x表示赋予可执行权限,下一步需要运行cloudreve程序,所以必须赋予cloudreve可执行权限。
执行如下命令,运行cloudreve。
./cloudreve
返回结果如下所示,可以看到初始管理员账号、初始管理员密码和监听端口。
初始密码是随机生成的,这需要记录初始管理员账号、密码和端口,后面会用到
初始管理员账号:admin@cloudreve.org
初始管理员密码:7jx2gsnr
开始监听 :5212
3.4 验证Cloudreve
网盘访问时,需要使用到公网IP,故需要获取ECS实例的公网地址。
通过实验室左侧导航栏,点击云产品资源,通过ECS云服务器下方弹性IP选项获取。
在本地浏览器中,打开,访问http://<ECS公网地址>:<cloudreve监听端口>
http://47.103.110.136:5212
进入登录页
依次输入初始化管理员账号和初始化管理员密码,单击登录。
登录成功
可以看到,后台接收到登录的日志
在终端中按下Ctrl+C键,停止cloudreve运行。
4. 安装ossfs
ossfs可以在Linux系统中,将对象存储OSS的存储空间(Bucket)挂载到本地文件系统中
能够像操作本地文件一样操作OSS的对象(Object),实现数据的共享。
在本实验场景中通过ossfs挂载OSS Bucket到ECS实例中,作为个人网盘的存储使用。
4.1 下载ossfs
执行如下命令,下载ossfs安装包。
wget https://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos8.0_x86_64.rpm
下载完用ls来查看是否下载成功
4.2 安装ossfs
这里用到yum安装
yum是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
在本场景中我们需要安装ossfs软件,在安装ossfs过程中通过yum可以自动下载和安装ossfs软件的依赖软件包。
实验环境ECS系统为Centos 8,由于Centos8 yum官方源下线,需要更换为阿里云yum源。
4.2.1 删除过期.repo
先删除系统内过期的.repo文件
rm -f /etc/yum.repos.d/*
然后下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
最后运行 yum makecache 生成缓存
yum clean all && yum makecache
最终完成yum源的更换
4.3 安装ossfs
使用yum命令安装ossfs时
yum install xx.rpm表示为安装xx.rpm软件包
-y参数表示安装过程中自动选择yes
回车,安装
yum install -y ./ossfs_1.80.6_centos8.0_x86_64.rpm
执行安装命令后返回结果显示Complete!表示ossfs安装成功。
4.4 配置ossfs
首先要获取到OSS Bucket和AccessKey ID和AccessKey Secret信息。
名字在OSS控制台可以看到,我用的九芒星英文
nine-mangstars
ID和KEY可以在最开始生成的资源中找到
执行下列命令,将Bucket名称以及具有此Bucket访问权限的AccessKey ID和AccessKey Secret信息存放在/etc/passwd-ossfs文件中。
echo nine-mangstars:LTAIEGhXytkJ8tmA:GVOL1mQPdcnJ23dKStnaY6mz3cl8DH > /etc/passwd-ossfs
执行如下命令,给passwd-ossfs文件授予权限。
注意:后续挂载OSS Bucket阶段,需要使用passwd-ossfs中的AccessKeyId和AccessKeySecret去验证是否具有passwd-ossfs文件中Bucket的权限。
chmod 640 /etc/passwd-ossfs
5. 挂载OSS Bucket
5.1 创建挂载点
执行如下命令,创建一个名为oss文件夹
mkdir oss
5.2 手动挂载OSS Bucket
执行如下命令
将Bucket挂载到指定目录/root/oss,
ossfs nine-mangstars /root/oss -o url=oss-cn-shanghai-internal.aliyuncs.com
OSS的ECS的经典网络访问(内网)的Endpoint,可在Bucket列表>>Bucket概览>>访问端口中查看(也就是url后面的内容)
查看是否挂载成功
df -h
返回如下则说明挂载成功
5.3 设置开机自动挂载
执行如下命令,在/etc/init.d/目录下建立文件ossfs
设置ECS开机自动启动脚本进行OSS Bucket自动挂载。
进入Vim编辑器。
vim /etc/init.d/ossfs
在编辑器模式中粘贴这段脚本
其中最后一行的Bucket名字和url要换成自己的
#! /bin/bash
#
# ossfs Automount Aliyun OSS Bucket in the specified direcotry.
#
# chkconfig: 2345 90 10
# description: Activates/Deactivates ossfs configured to start at boot time.ossfs nine-mangstars /root/oss -o url=oss-cn-shanghai-internal.aliyuncs.com -oallow_other
粘贴
保存后:wq退出
执行如下命令,为新建立的ossfs脚本赋予可执行权限。
chmod a+x /etc/init.d/ossfs
执行如下命令,把ossfs启动脚本作为其他服务,开机自动启动。
chkconfig ossfs on
6. 配置个人网盘
6.1 运行Cloudreve
执行如下命令,运行cloudreve。
./cloudreve
6.2 配置Cloudreve
配置cloudreve主要是对存储策略进行配置,并将存储策略与用户组进行绑定。
存储策略定义了文件的存储平台、上传和功能限制。用户组与存储策略绑定,此用户组下的用户将共享同一个存储策略。
首先切换为远程登录cloudreve。打开浏览器,访问
http://47.103.110.136:5212
说明:通过云产品资源列表查看ECS的公网地址
http://<ECS公网地址>:<cloudreve监听端口>
输入之前随机生成的账号和密码
在cloudreve主界面右上角,单击管理面板。
在确定站点URL设置对话框中,单击更改。
6.2.1 配置存储策略
在左侧导航栏中,单击存储策略,添加存储策略
选择本机存储
在添加本机存储策略的上传路径页面中,将存储目录修改为
/root/oss/uploads/{uid}/{path}
/root/oss为oss Bucket的挂载点。
然后默认下一步
在添加本机存储策略的直链设置页面中,单击下一步。
在添加本机存储策略的上传限制页面中,单击下一步。
在添加本机存储策略的完成页面中,输入存储策略名OSS,单击完成。
6.2.2 配置用户组
在左侧导航栏中,单击用户组,管理员编辑
在编辑管理员页面的存储策略中,选择oss,然后单击保存
6.2.3 上传文件
返回主页后,任意上传一个文件到个人网盘
6.2.4 OSS验证结果
切换到命令行界面,可以看到刚刚上传的文件
然后再次回到远程桌面
https://oss.console.aliyun.com/
在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码到用户密码输入框,单击登录。
在左侧导航栏中,单击Bucket列表。找到创建的Bucket,单击Bucket名称。
在文件列表页面,根据云产品资源列表中的Object路径,单击对应的文件夹名称,在文件名为1的文件夹下存放着刚刚上传的文件
即CSDN九芒星.txt