使用Zpan搭建低配版云速云盘【开发者专属集市】 | 您所在的位置:网站首页 › obs开发文档 › 使用Zpan搭建低配版云速云盘【开发者专属集市】 |
AppBazaar
访问个人开发者专属集市AppBazaar官网: https://console.huaweicloud.com/appbazaar/home?region=cn-north-4 本篇,我们要制作的是“使用Zpan搭建低配版云速云盘” 背景市面上的免费网盘已经有很多了,比如百度网盘、阿里云盘、WPS云盘、OneDrive、GoogleDrive…但是免费的东西反而是最贵的,要么有限速,要么就是免费容量太小,更有甚者还有数据被泄露、封禁的风险。重要的隐私数据,还是放在自己这里比较放心。本文就介绍一个不限速的低成本个人网盘——ZPan,相较于老牌的私有网盘OwnCloud等,Zpan有一个独特的优势:不限速 目前ZPan支持所有兼容S3协议的云存储平台,包括阿里云OSS 、腾讯云COS 、七牛云Kodo 、Ucloud US3(暂不支持自动设置CORS) 、华为云OBS 、网易云NOS(暂不支持自动设置CORS) 、亚马逊S3 、MinIO等,也就是说你可以将数据存储在大厂那里。 ZPan本质上是一个URL签名服务器+可视化的文件浏览器,采用直链的方式进行上传下载,所以为了保证上传下载的安全性,客户端用来上传下载的URL均需要服务端进行签名。支持文件及文件夹分享(未登录可访问),并且完全不受服务器带宽限制,你本地带宽有多大,就能跑多快。 URL签名原理:用户登录后向服务器提供用户认证信息(如账户和密码),服务器认证完后给客户端返回一个Token令牌,当用户再次获取信息时,带上此令牌,如果令牌正确,则返回数据。对于获取Token信息后,访问相关接口,客户端请求的url需要带上如下参数: 时间戳:timestamp Token令牌:token 然后对时间戳和token拼接排序,用私钥进行非对称加密生成sign签名,连同前面的一起发给服务端。服务端通过客户端的公钥来解密,从而来验证数据来源的真实性。我用时序图画了个大致流程,以帮助理解 “直链”与“外链”的整个流程图如下,其中直链流程用绿色箭头表示,外链用黑色箭头表示。可以看到外链明显比直链多了好几个环节 百度等网盘的数据流动为存储->服务器->客户端,下载和下载速度的瓶颈是服务器的带宽,而国内的带宽费又往往比较贵,以华为云为例,5M 带宽就要 1100+ 一年,5M 带宽的理论下载速度约为 600Kb/s,成本高,速度还慢。 对比维度 百度云 阿里云 OneDrive OwnCLoud ZPan(自行搭建) 云速云盘 每年价格(按1T容量计算) 免费/360(超级会员) 0/388(超级会员) 398 907 907 6144 速度 几十kb/s(免费)/不限速(超级会员) 不限速 不稳定 5M 不限速 不限速 用户数 1 1 1 不限 不限 8 其他 隐私数据可能被泄露、屏蔽 隐私数据可能被泄露、屏蔽 网络不稳定 生态丰富,有客户端 只能网页访问 企业网盘,功能丰富通过上面表格可以看出,自检ZPan是当前最优的方案 方案介绍项目名称:Zpan 技术选型特点:对象存储(OBS) 开发语言:无 数据库:无 部署服务器操作系统:Ubuntu 20.04 Server 64bit 技术方案:无 ubuntu server和centos一样,都是不带UI界面的linux服务器。用命令行的好处是,能省下一笔UI界面的开销,相同配置下,系统占用的资源更少,能腾给应用较大的空间 ZPan的开源地址为:https://github.com/saltbo/zpan 在国内访问很慢,要多刷几次,或者装个插件(→_→) 因为双十一购物节,所有商品均是免费,因此这里直接0元购买即可 订单支付成功后,前往“买家中心”就能看到我们刚刚购买的订单了 首先,访问华为云官网:https://www.huaweicloud.com/ 产品 —> 存储 —> 对象存服务 OBS 或者直接访问对象存储服务OBS官网:https://www.huaweicloud.com/product/obs.html 点击“立即购买”按钮,可以开始购买ECS包月、包年套餐 区域:华北-北京四 资源包类型:标准存储单AZ包 规格:40GB 购买时长:1个月注意: OBS、桶,还有ECS要选在同一个区域,这样可以节省流量费 我这里做实验,没多少数据,因此不购买,按实际计费即可**OBS的官网帮助文档为:https://support.huaweicloud.com/obs/index.html 里面不仅有文字版的说明,还有很详尽的视频教程 OBS的计费说明如下图 创建桶的操作是免费的,但往桶里面存储数据却是收费的。如果能预估出使用时长和数据量,可以通过购买相应的包年,或者包月的OBS套餐来获得优惠 下面开始创建桶 区域:华北-北京四 桶名词:zpan-my(不能与已有桶名称重复) 数据冗余存储策略:单AZ存储(启用后不支持修改) 默认存储类别:低频访问存储(适合高可靠,低成本,较少访问场景) 桶策略:私有 默认加密:不勾选 归档数据直读:关闭创建成功后,回返回桶列表页,并显示该桶 点击“桶名称”可以进入详情页,查看桶中信息 在左侧面板,切换成“总览”,Endpoint的地址为:obs.cn-north-4.myhuaweicloud.com 注意: OBS、桶,还有ECS要选在同一个区域,这样可以节省流量费 记住你的桶名称(后面有用):zpan-my 记住你的Endpoint地址(后面有用):obs.cn-north-4.myhuaweicloud.com 购买ECS进入华为云官网:https://www.huaweicloud.com/ 产品 —> 计算 —> 弹性云服务器ECS 或者直接访问ECS官网:https://www.huaweicloud.com/product/ecs.html 点击“立即购买” 这里需要“配置安全组规则”,在Sys-WebServer的入方向,放行8222端口(这是访问ZPan的端口) 点击 Sys-WebServer 的名字 切换到“入方向规则”,然后“添加规则” 优先级填1,端口填8222,然后点击“确定” 切换回“弹性云服务器-控制台”,点击刷新按钮,即可以看到该端口 然后点击下一步,之后输入ECS密码即可 最后确认配置,勾选协议即可 返回云服务器列表,可以看到服务器已经在运行中了 注意:OBS、桶,还有ECS要选在同一个区域,这样可以节省流量费 安装ZPan点击弹性云服务器名,进入详情页 点击右上角的“远程登录”,然后选择从“CloudShell”登录 输入密码后,点击连接即可 之后输入命令,安装并启动服务 curl -sSLf https://dl.saltbo.cn/install.sh | sh -s zpan systemctl start zpanCloudShell支持复制命令后,右键直接粘贴进控制台,非常方便 从打印结果可以看出,该命令指向github,无法访问。 上面的命令也可能下载很慢然后中断,如果有问题,就重试一下 (我这里反复试了3次,终于下载成功了) 如下图,最终下载并安装成功了 (正常情况下,只要2分30秒左右,就能安装成功了。如果太慢,使用 Ctrl+C 中断,然后再试一次) ECS服务器的地址,可以在ECS列表中查到。例如,我这里的地址就是:122.9.0.120 打开网页,输入http://ECS公网IP:8222。例如,我这里就是 http://122.9.0.120:8222 数据库类型:为了压缩成本,此处先选择 Sqlite3 作为数据库(默认也是sqlite3),后续如果有瓶颈可以自行在配置中切换为其他更强大的数据库 DSN:Data Source Name的简称,意思是“数据源名称”,我们这里输入zpan.db(默认也是zpan.db)如果配mysql,DSN默认就是user:pass@tcp(127.0.0.1:3306)/zpan?&parseTime=True&loc=Local 点击下一步,输入账号密码(默认账号是:[email protected]) 然后点击开始安装(瞬间就安装成功了) 点击“去登录按钮”,输入账号密码,登录成功 在用户管理这里,可以看到默认只有一个管理员,并且是“已激活”状态 这里可以添加新用户 切换到“存储管理”,点击“创建存储”按钮。可以看到需要AK/SK,下面来获取一下它们两 通过 API 访问华为云需要提供AccessKey 和 SecretKey,简称 AK/SK ZPan首次登录,进行配置时,也需要AK/SK。这里先行获取一下 注意:AK\SK 相当于你的账号密码,请一定妥善保管!!! 官方文档华为云官方有提供获取访问密钥(AK/SK)的说明文档,地址如下 https://support.huaweicloud.com/productdesc-obs/obs_03_0208.html OBS支持通过AK/SK认证方式进行认证鉴权,即使用Access Key ID(AK)/Secret Access Key(SK)加密的方法来验证某个请求发送者身份。当您使用OBS提供的API进行二次开发并通过AK/SK认证方式完成认证鉴权时,需要按照OBS定义的签名算法来计算签名并添加到请求中。 OBS支持使用永久AK/SK鉴权,也支持通过临时AK/SK和securitytoken进行认证鉴权。 操作场景通过控制台访问OBS,您首先要使用您的华为云帐号或IAM用户登录控制台,在这种场景下OBS通过您的帐号或IAM用户信息进行鉴权。 而在使用其他方式访问OBS时,例如工具(OBS Browser+、obsutil、obsfs)、SDK或API,不需要您提供华为云帐号或IAM用户登录信息,取而代之的是通过帐号或IAM用户的访问密钥(AK/SK)来进行鉴权。所以您在使用这些方式访问OBS时,需要提前获取访问密钥(AK/SK) 获取永久访问密钥(AK/SK)由于时间限制,这里仅介绍获取永久访问密钥(AK/SK),华为云官网文档地址如下: https://support.huaweicloud.com/qs-obs/obs_qs_0005.html 登录控制台 有两种方法: (1)进入华为云官网https://www.huaweicloud.com/,在右上角点击“控制台” 鼠标指向界面右上角的登录用户名,在下拉列表中单击“我的凭证” 在左侧导航栏单击“访问密钥” 单击“新增访问密钥”,进入“新增访问密钥”页面 通过邮箱或者手机进行验证,输入对应的验证码。 创建成功并下载密钥(credentials.csv) credentials.csv中保存了(记住这几个值,后面有用) User Name Access Key Id Secret Access Key接上面在ZPan页面,登录进去之后,我这里是 http://122.9.0.120:8222/admin/storages 点击右上角的“创建存储”按钮 类型:网盘 名称:MyZpan(仅允许使用字母数字和中线-) 存储桶:zpan-my(你创建桶时起的名字) 接入点:obs.cn-north-4.myhuaweicloud.com AccessKey:(略,在上一章节下载的CSV里) SecretKey:(略,在上一章节下载的CSV里) 确定后,在存储列表可以看到刚刚创建的存储状态为:正常 至此就已经完成了配置,再次在网址栏输入 http://ECS公网IP:8222 即可访问专属于你的个人网盘 使用Zpan直接访问刚刚的ZPan地址:http://ECS公网IP:8222。例如,我这里就是 http://122.9.0.120:8222 回车后,回打开ZPan的页面,它会自动在URL末尾补上 “前面创建存储时设置的名称” 这里我们上传一个刚刚安装ZPan的shell脚本 上传后,叉掉对话框,可以看到列表会自动刷新 鼠标移到某一项上,分别是下载,分享和更多按钮 点击“下载”按钮,会直接调用浏览器的下载功能,将文件下载到本地 分享则可以选择有效期,以及是否使用提取码保护链接(这个做的跟百度网盘一样) ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 在ECS的管理控制台中,点击“我的ECS” 在ECS列表右侧,展开更多,选择删除 勾选释放公网IP,删除云服务器挂载的数据盘 然后命令下发成功,ECS的状态会更改为正在删除的状态 ECS删除成功后,ECS列表中不存在服务器了 访问OBS官网:https://www.huaweicloud.com/product/obs.html 进入“管理控制台”可以看到OBS使用的情况,包括 总存储量 平均每桶存储量 桶数量 文件数量 总下载流量 内网下载流量 外网下载流量 等等切换到“桶列表”页面,在桶的列表项右侧,点击“删除” 提示桶里面不是空的,所以无法正常删除 点击“如何删除”,会链接到华为云的帮助文档,地址如下 https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829108.html 点击“桶名称”(这里是“zpan-my”)进入详情页。可以看到一个文件夹,这个文件夹,文件夹里面,就是我们刚刚上传的文件了 对象是数据存储的基本单位,在OBS中文件和文件夹都是对象。您可以上传任何类型(文本、图片、视频等)的文件,并在桶中对这些文件进行管理 若需要将对象移动到桶内其他位置,推荐下载使用OBS Browser+图形化管理工具 基于安全合规要求,从浏览器直接访问文件时不能进行在线预览这里直接删除整个文件夹即可。删除后,在右上角的“任务中心”可以看到刚刚的操作(刷新或关闭浏览器,会取消当前任务并清除全部记录。 ) 然后回到“桶列表”,删除桶即可 它提示:删除后无法恢复,30分钟后,能再次使用该桶名 注意:所有的删除操作,都需要短信或者邮箱的验证,才能顺利完成 实验心得经过本次实验,从文档和华为云的实际部署中,学到了不少知识 ZPan中的一些专业术语,包括直链和外链、ZPan的数据存储方式、以及与当代各种网盘的区别 OBS、桶,还有ECS要选在同一个区域,这样可以节省流量费 体验了华为CloudShell远程登录ECS的便捷操作 文档中提供的安装脚本命令curl -sSLf https://dl.saltbo.cn/install.sh | sh -s zpan,实际上是从github下载安装包,由于国内被墙的原因。网络可能不是很稳定,可能无法下载脚本,要重试几次才能成功 学习到了完整的个人网盘搭建流程,包括ZPan的页面样式与设置方式(ZPan的界面,包括使用方式,简直和现在最流行的百度网盘一模一样,太像了!!!) 总结最后,我们来梳理一下本次部署ZPan的整个流程 通过AppBazaar开发者专属集市,购买到“使用Zpan搭建低配版云速云盘”项目的开发文档 购买OBS(如果长期使用,则要购买套餐,实验可以跳过此项) 创建桶(创建免费,存储收费) 购买ECS 使用华为CloudShell远程登录ECS 通过脚本下载并安装ZPan 启动ZPan 访问自建的ZPan网站,设置数据库类型、账号密码 获取华为云AK/SK 在自建的ZPan网站中,创建存储(需要用到桶名、桶的Endpoint地址、AK/SK) 访问自建的ZPan网站,会自动在URL后补上刚刚创建的存储名 使用方式与百度网盘,基本一模一样备注:文中使用到的讲解图在附件中 【购物节已开启,个人开发者的专属集市AppBazaar来啦(所有商品购物节期间免费体验)】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/381337 此外,在(https://bbs.huaweicloud.com/activity/suggestion.html)提出您的宝贵建议,标题以【云驻计划-定向征文】开头,还有机会赢取额外奖励。 |
CopyRight 2018-2019 实验室设备网 版权所有 |