如何用 Serverless 低成本打造个人专属网盘?
简介:想要做个网盘不知如何开始,不妨花3分钟读读这篇,看看如何借助 Serverless ,低成本的做一个“不限制网速、无限扩展、同时支持数百种文件格式在线预览、编辑、协作”的专属个人 & 家庭网盘~
前言
随着全球大数据不断增长,未来数据云存储容量需求也将不断扩大,iiMedia Research(艾媒咨询)数据显示,2020年全球数据中心存储容量将达到272艾字节。不断扩大的个人数据和云储存需求加速了个人云服务市场的发展,2020年中国个人云盘用户规模有超过4亿人。
虽然现在市面上有些网盘产品, 如果免费试用,或多或少都存在一些问题, 可以参考 2020国内还能用的网盘推荐。 本文旨在使用较低成本打造一个“个人专享的、无任何限速的、如Windows体验的私有云盘”。
KodBox 遇见 Serverless
为什么是 KodBox?
调研了不少开源的 web ui filemanager, kodbox 深深打动了我, 功能丰富超出了我的想象,总结下来就是:
简单高效,流畅, 云端存储&协同办公新体验
- 如Windows体验的私有云盘/企业网盘
- 完全支持私有化部署,存储安全可控
- 数百种文件格式在线预览、编辑和播放
- 轻松分享,高效协作,细粒度权限管控
- 全平台客户端覆盖,随时随地访问,轻松同步挂载
更多详情可以参考 kodbox中文网。
为什么选择 Serverless 托管 KodBox 应用?
网盘的操作时间就是比较离散的, 尤其是对于个人和家庭的网站, 常备一台机器(数据库也需要安装在本机, 不然还有单独的数据库费用), 会产生大量的浪费, 比如凌晨大家都睡觉了,机器资源是闲置的。 而对于晚上 8 点, 家庭成员都在娱乐休闲的时候, 可用一台机器的资源又不太够用, 比如大家一起同时在线看不同的 4K 高清电影(当然每个人可以自己先快速下载到自己本地PC 机或者手机)。 而 Serverless 很好的解决了这个需求, 按量付费, 有请求随时扩容。
阿里云函数计算是事件驱动的全托管计算服务。使用函数计算:
- 您无需采购与管理服务器等基础设施,只需编写并上传代码。
- 函数计算为您准备好计算资源,弹性地、可靠地运行任务。
- 按量付费、免运维
- 提供日志查询、性能监控和报警等功能。
借助函数计算,您可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费。
将 kodbox 项目部署到函数计算, 数据库持久化使用阿里云文件存储,内容存储使用阿里云对象存储, 我们就得到一个专属的 " 计算+存储都可以 Serverless 无限扩展、不限制网速、支持数百种文件格式在线预览编辑和播放、轻松分享和协作" 的个人&家庭网盘。
DEMO 体验地址:
地址:http://kodbox.fc-nas-filemgr.1986114430573743.cn-hangzhou.fc.devsapp.net
账号: test
密码:test@123
登录之后, 您可以得到一个 web 版本的 windows 操作系统的体验, 对您 NAS 盘 或者 OSS 上多媒体文件进行预览、编辑、移动等各种处理。
当然:
- 如果您部署成功后, 默认有 admin 账号, 可以实施更高级的用户管理级插件安装等等...
- 下载 - 可道云-私有云存储&协同办公平台_企业网盘_企业云盘_网盘_云盘 可以下载 PC 或者手机客户端实现网盘的自动备份同步功能 ...
成本剖析:
- 计算费用: 0.000110592元/GB-秒, 每个月有 40万 GB-秒的免费额度,这项基本免费。
- 流量费用:函数请求响应流量:0.50元/GB, 取决于您每个月从您的网盘上下载文件的多少, 上传没有流量费用。上传和下载均没有限速。
- 持久化费用:使用阿里云 NAS, 主要部署 kodbox 应用需要的 sqlite 数据库, 0.35(*结合低频介质,低至0.19) GB/月, 由于 NAS 单价比较贵, 建议 NAS 盘只做 kodbox 的 sqlite 数据库存储, 不会超过1G, 费用即 0.35 元。
- 在单纯存储这块, 可以选择您自己存储类型,以使用 OSS 做文件存储为例, OSS 存储价格如下表, 如果电影收集爱好者, 大部分电影应该是冷归档型,假设有 100GB 的存储资源,那么每个月的存储费用是 1.5 元。
快速部署实战操作
- 开通阿里云函数计算
- 开通阿里云文件存储
- 在登录阿里云控制台的状态下, 打开这个引导教程 start-fc-kodbox, 按照这个指引教程走下去即可。
Tips:
- 如果教程中某些步骤时间比较长, 请耐心稍等下,cloudshell 默认提供机器规格 CPU 性能较低, zip 和 unzip 消耗的时间较长
- 如果您有自己的域名, 您可以将最后的得到的访问家庭 NAS 的域名换成您自己的域名, 具体参考函数计算的配置自定义域名
- 使用 admin 账号登录, 进入后台存储管理, 添加适合自己的存储, 比
如增加一个 OSS Bucket。
畅想
在文章 PHP 遇见 Serverless,帮你解决这些痛点!中, 我们十分细致地讨论了 PHP 应用在 Serverless 的最佳实践方式以及带来的巨大价值, 其中最重点的一个点是 FC 弹出的实例演化为存粹的执行环境, PHP web 工程存储到 NAS, 这个时候我们就可以使用 Kodbox + FC 实现 windows 体验般的 WEB UI 对 NAS 上的 PHP 工程就行管理, 包括上传、覆盖、删除、修改等。
参考:
- 艾媒咨询|2020-2021年中国个人网盘专题调研报告
- https://github.com/devsapp/start-fc-kodbox
- https://github.com/kalcaddle/kodbox
- 2020国内还能用的网盘推荐
本文为阿里云原创内容,未经允许不得转载。
如何用 Serverless 低成本打造个人专属网盘?的更多相关文章
- 打造个人专属网盘nextcloud
原文 https://edu.aliyun.com/course/150/lesson/list?spm=5176.9278281.815111.sence.114d4f3eLLMS53
- 【Microsoft Azure 的1024种玩法】四. 利用Azure Virtual machines 打造个人专属云盘,速度吊打某云盘
[简介] 1.Azure Virtual machines是Azure 提供的多种可缩放按需分配计算资源之一,Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或 ...
- 基于CentOS 搭建 Seafile 专属网盘
系统要求:CentOS 7.2 64 位操作系统 安装 Seafile 安装依赖环境 使用 yum 安装 Python 及 MySQL: yum install python python-setup ...
- 基于Ubuntu搭建Seafile专属网盘
系统要求: Ubuntu 16.04.1 LTS 64 位操作系统 安装 Seafile 服务器 安装依赖环境 在 Debian/Ubuntu 系统下,可以使用以下命令安装 MySQL: sudo a ...
- 搭建 Seafile 专属网盘
准备域名 任务时间:15min ~ 20min 域名注册 如果您还没有域名,可以在腾讯云上选购,过程可以参考下面的视频. 视频 - 在腾讯云上购买域名 域名解析 域名购买完成后, 需要将域名解析到实验 ...
- 超细讲解Django打造大型企业官网
本文为知了课堂黄勇老师讲的<超细讲解Django打造大型企业官网>的笔记. 第一章 Django预热 1.创建virtualenv虚拟环境 2.URL组成部分详解 3.Django介绍 4 ...
- 打造百度网盘备份利器:自动备份Linux VPS文件和多线程下载百度网盘资源
前一段时间国内的各大网盘百度云盘,金山快盘,360云盘,华为网盘为争夺用户上演空间容量博弈,网盘商们还固执地以为中国的网民都不懂网络技术,可以像某公司那样用一些数字的手段来忽悠用户,参与到网盘商的数字 ...
- Layui框架+PHP打造个人简易版网盘系统
网盘系统 大家应该都会注册过致命的一些网盘~如百度云.百科介绍:网盘,又称网络U盘.网络硬盘,是由互联网公司推出的在线存储服务,服务器机房为用户划分一定的磁盘空间,为用户免费或收费提供文件的存储. ...
- JAVA Socket通信 打造属于自己的网盘
近一个月没敲JAVA代码了,最近老师布置了一个写JAVA网盘的作业,总共花了十几个小时,总算写完了,debug真的累,感觉自己还是菜了,没有那种有一个想法就能马上用代码实现的能力....不扯了,下面开 ...
- 玩转Windows Azure存储服务——网盘
存储服务是除了计算服务之外最重要的云服务之一.说到云存储,大家可以想到很多产品,例如:AWS S3,Google Drive,百度云盘...而在Windows Azure中,存储服务却是在默默无闻的工 ...
随机推荐
- 今日学习:位运算&中国剩余定理
-2^ 31的补码是-0.也就是 1000 0000 0000 0000 0000 0000 0000 0000 补码是原码取反加1 x&(-x) 是最低位为1的位为1,其余位为0. 中国剩余 ...
- C++ Qt开发:QTcpSocket网络通信组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QTc ...
- JS(简单数据类型、数据类型转换)
一. 数据类型简介 1.1 为什么需要数据类型 在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型.简单来说,数据类 ...
- 记录--vue+three.js 构建 简易全景图
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 最近几天在学习three.js ,因为我相信只有实践才能出真理,捣鼓捣鼓做了一个简易的全景图,这里主要是分享做这个vue版全景图中遇到的问 ...
- 记录--千万别让 console.log 上生产!用 Performance 和 Memory 告诉你为什么
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 很多前端都喜欢用 console.log 调试,先不谈调试效率怎么样,首先 console.log 有个致命的问题:会导致内存泄漏. 为什 ...
- KingbaseES V8R6 集群运维案例 -- 脚本部署集群后ssh无法连接
案例说明: 在kylin V10环境下,通过脚本方式部署KingbaseES V8R6集群后,发现ssh无法连接主机,通过分析发现在脚本部署过程中会对系统环境进行优化配置,在修改了/etc/ssh/s ...
- Java开发岗面试题小结
8种基本数据类型 类型名称 关键字 占用内存 取值范围 字节型 byte 1 字节 -128~127 短整型 short 2 字节 -32768~32767 整型 int 4 字节 -21474836 ...
- Azkaban 2.5 Documentation
Overview Azkaban was implemented at LinkedIn to solve the problem of Hadoop job dependencies. We had ...
- 鸿蒙HarmonyOS实战-ArkUI组件(Button)
一.Button Button(按钮)是一种常见的用户界面控件,通常用于触发操作或提交数据.Button 拥有文本标签和一个可点击的区域,用户点击该区域即可触发相应的操作或事件. Button 的主要 ...
- Log4Net使用示例
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSe ...