【云存储】使用OSS快速搭建个人网盘教程(阿里云)

使用OSS快速搭建个人网盘

  • 一、基础概要
    • [1. 主要的存储类型](#1. 主要的存储类型)
      • [1.1 块存储](#1.1 块存储)
      • [1.2 文件存储](#1.2 文件存储)
      • [1.3 对象存储](#1.3 对象存储)
    • [2. 对象存储OSS](#2. 对象存储OSS)
    • [3. 个人网盘架构](#3. 个人网盘架构)
      • [3.1 Cloudreve](#3.1 Cloudreve)
      • [3.2 ossfs](#3.2 ossfs)
  • 二、基于OSS快速搭建个人网站
    • [1. 登录OSS控制台](#1. 登录OSS控制台)
    • [2. 创建OSS Bucket](#2. 创建OSS Bucket)
    • [3. 安装Cloudreve](#3. 安装Cloudreve)
      • [3.1 下载安装包](#3.1 下载安装包)
      • [3.2 解压](#3.2 解压)
      • [3.3 授权](#3.3 授权)
      • [3.4 验证Cloudreve](#3.4 验证Cloudreve)
    • [4. 安装ossfs](#4. 安装ossfs)
      • [4.1 下载ossfs](#4.1 下载ossfs)
      • [4.2 安装ossfs](#4.2 安装ossfs)
        • [4.2.1 删除过期.repo](#4.2.1 删除过期.repo)
      • [4.3 安装ossfs](#4.3 安装ossfs)
      • [4.4 配置ossfs](#4.4 配置ossfs)
    • [5. 挂载OSS Bucket](#5. 挂载OSS Bucket)
      • [5.1 创建挂载点](#5.1 创建挂载点)
      • [5.2 手动挂载OSS Bucket](#5.2 手动挂载OSS Bucket)
      • [5.3 设置开机自动挂载](#5.3 设置开机自动挂载)
    • [6. 配置个人网盘](#6. 配置个人网盘)
      • [6.1 运行Cloudreve](#6.1 运行Cloudreve)
      • [6.2 配置Cloudreve](#6.2 配置Cloudreve)
        • [6.2.1 配置存储策略](#6.2.1 配置存储策略)
        • [6.2.2 配置用户组](#6.2.2 配置用户组)
        • [6.2.3 上传文件](#6.2.3 上传文件)
        • [6.2.4 OSS验证结果](#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的来源有:

php 复制代码
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的创建。

这里名称我用九芒星的英文

php 复制代码
ninemangstars

地域根据最开始生成的资源,找到对应的地域

个人网盘场景中需要和ECS实例处于同一个地域。这里用的上海

3. 安装Cloudreve

提交之后,在实验页面右侧导航栏,单击图标,切换至Web Terminal。

3.1 下载安装包

执行如下命令,下载cloudreve安装包。

php 复制代码
wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/cloudreve_3.3.1_linux_amd64.tar.gz

wget 是Linux系统用于从Web下载文件的命令行工具。wget加上需要下载文件的链接,即可完成文件的下载。

返回结果如下所示,即完成cloudreve安装包的下载。

3.2 解压

下载完毕后,执行如下命令,解压cloudreve安装包。

php 复制代码
tar -zxvf cloudreve_3.3.1_linux_amd64.tar.gz

tar是Linux系统用于解压与压缩命令,解压参数中

z表示配合解压.gz类型的压缩包

x表示解压缩

v表示显示解压缩详细信息

f表示被处理文件。

返回结果如下所示,即完成cloudreve安装包的解压。

3.3 授权

执行如下命令,给cloudreve授予权限。

php 复制代码
chmod +x ./cloudreve

chmod用于改变文件或目录的访问权限,+x表示赋予可执行权限,下一步需要运行cloudreve程序,所以必须赋予cloudreve可执行权限。

执行如下命令,运行cloudreve。

php 复制代码
./cloudreve

返回结果如下所示,可以看到初始管理员账号、初始管理员密码和监听端口。

初始密码是随机生成的,这需要记录初始管理员账号、密码和端口,后面会用到

php 复制代码
初始管理员账号:admin@cloudreve.org
初始管理员密码:7jx2gsnr
开始监听 :5212

3.4 验证Cloudreve

网盘访问时,需要使用到公网IP,故需要获取ECS实例的公网地址。

通过实验室左侧导航栏,点击云产品资源,通过ECS云服务器下方弹性IP选项获取。

在本地浏览器中,打开,访问http://<ECS公网地址>:<cloudreve监听端口>

php 复制代码
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安装包。

php 复制代码
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文件

php 复制代码
rm -f /etc/yum.repos.d/*

然后下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/

php 复制代码
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

最后运行 yum makecache 生成缓存

php 复制代码
yum clean all && yum makecache

最终完成yum源的更换

4.3 安装ossfs

php 复制代码
使用yum命令安装ossfs时
yum install xx.rpm表示为安装xx.rpm软件包
-y参数表示安装过程中自动选择yes

回车,安装

php 复制代码
yum install -y ./ossfs_1.80.6_centos8.0_x86_64.rpm

执行安装命令后返回结果显示Complete!表示ossfs安装成功。

4.4 配置ossfs

首先要获取到OSS Bucket和AccessKey ID和AccessKey Secret信息。

名字在OSS控制台可以看到,我用的九芒星英文

php 复制代码
nine-mangstars

ID和KEY可以在最开始生成的资源中找到

执行下列命令,将Bucket名称以及具有此Bucket访问权限的AccessKey ID和AccessKey Secret信息存放在/etc/passwd-ossfs文件中。

php 复制代码
echo nine-mangstars:LTAIEGhXytkJ8tmA:GVOL1mQPdcnJ23dKStnaY6mz3cl8DH > /etc/passwd-ossfs

执行如下命令,给passwd-ossfs文件授予权限。

注意:后续挂载OSS Bucket阶段,需要使用passwd-ossfs中的AccessKeyId和AccessKeySecret去验证是否具有passwd-ossfs文件中Bucket的权限。

php 复制代码
chmod 640 /etc/passwd-ossfs

5. 挂载OSS Bucket

5.1 创建挂载点

执行如下命令,创建一个名为oss文件夹

php 复制代码
mkdir oss

5.2 手动挂载OSS Bucket

执行如下命令

将Bucket挂载到指定目录/root/oss,

php 复制代码
ossfs nine-mangstars /root/oss -o url=oss-cn-shanghai-internal.aliyuncs.com

OSS的ECS的经典网络访问(内网)的Endpoint,可在Bucket列表>>Bucket概览>>访问端口中查看(也就是url后面的内容)

查看是否挂载成功

php 复制代码
df -h

返回如下则说明挂载成功

5.3 设置开机自动挂载

执行如下命令,在/etc/init.d/目录下建立文件ossfs

设置ECS开机自动启动脚本进行OSS Bucket自动挂载。

进入Vim编辑器。

php 复制代码
vim /etc/init.d/ossfs

在编辑器模式中粘贴这段脚本

其中最后一行的Bucket名字和url要换成自己的

php 复制代码
#! /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脚本赋予可执行权限。

php 复制代码
chmod a+x /etc/init.d/ossfs

执行如下命令,把ossfs启动脚本作为其他服务,开机自动启动。

php 复制代码
chkconfig ossfs on

6. 配置个人网盘

6.1 运行Cloudreve

执行如下命令,运行cloudreve。

php 复制代码
./cloudreve

6.2 配置Cloudreve

配置cloudreve主要是对存储策略进行配置,并将存储策略与用户组进行绑定。

存储策略定义了文件的存储平台、上传和功能限制。用户组与存储策略绑定,此用户组下的用户将共享同一个存储策略。

首先切换为远程登录cloudreve。打开浏览器,访问

php 复制代码
http://47.103.110.136:5212

说明:通过云产品资源列表查看ECS的公网地址

http://<ECS公网地址>:<cloudreve监听端口>

输入之前随机生成的账号和密码

在cloudreve主界面右上角,单击管理面板。

在确定站点URL设置对话框中,单击更改。

6.2.1 配置存储策略

在左侧导航栏中,单击存储策略,添加存储策略

选择本机存储

在添加本机存储策略的上传路径页面中,将存储目录修改为

php 复制代码
/root/oss/uploads/{uid}/{path}

/root/oss为oss Bucket的挂载点。

然后默认下一步

在添加本机存储策略的直链设置页面中,单击下一步。

在添加本机存储策略的上传限制页面中,单击下一步。

在添加本机存储策略的完成页面中,输入存储策略名OSS,单击完成。

6.2.2 配置用户组

在左侧导航栏中,单击用户组,管理员编辑

在编辑管理员页面的存储策略中,选择oss,然后单击保存

6.2.3 上传文件

返回主页后,任意上传一个文件到个人网盘

6.2.4 OSS验证结果

切换到命令行界面,可以看到刚刚上传的文件

然后再次回到远程桌面

php 复制代码
https://oss.console.aliyun.com/

在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码到用户密码输入框,单击登录。

在左侧导航栏中,单击Bucket列表。找到创建的Bucket,单击Bucket名称。

在文件列表页面,根据云产品资源列表中的Object路径,单击对应的文件夹名称,在文件名为1的文件夹下存放着刚刚上传的文件

即CSDN九芒星.txt

相关推荐
kaisun647 小时前
Docker 构建网络问题排查
网络·docker·eureka
lihao lihao8 小时前
软硬链接
linux·运维·服务器
TOWE technology8 小时前
智能安防监控系统如何做好防雷?——视频信号SPD综合应用方案解析
运维·服务器·防雷产品·信号保护·信号防雷·spd
雪度娃娃8 小时前
存储器层次结构——磁盘硬盘存储
服务器·网络·数据库·计算机组成原理
YUANQIANG20248 小时前
通信领域进行蒙特卡洛仿真的思路和步骤
网络
eam0511238 小时前
OSPF综合实验
网络
QQ15401828568 小时前
USB转千兆以太网芯片方案
网络·pt153s·千兆以太网芯片·usb转以太网·千兆网口芯片
大明者省9 小时前
IIS 端口绑定正常访问的原理说明与常见误区澄清
运维·服务器·笔记
tedcloud1239 小时前
ai-engineering-from-scratch部署教程:从零搭建AI应用环境
服务器·前端·人工智能·系统架构·edge
mounter6259 小时前
迈向硬件级无缝热升级:Linux 内核 VFIO 与 IOMMU 持久化技术的演进之路
linux·服务器·内存管理·kernel