Serverless 实战 —— 利用OneIndex-Serverless无成本搭建属于你自己的网盘

rsong 2019-07-29 6016浏览量

简介: 一、前言 Onindex-Serverless是OneIndex项目的阿里云函数计算版本 OneIndex项目地址: donwa/oneindex OneIndex是一个PHP项目,目前已获得了3000+的star,可以将OneDrive挂载为个人在线网盘,提供资源的分享链接。

一、前言

本文为转载文章, 原文地址: https://zhuanlan.zhihu.com/p/74538287

Onindex-Serverless是OneIndex项目的阿里云函数计算版本

OneIndex项目地址: donwa/oneindex

OneIndex是一个PHP项目,目前已获得了3000+的star,可以将OneDrive挂载为个人在线网盘,提供资源的分享链接。OneIndex的部署需要PHP环境,虽然作者同时提供了Docker的部署方法,但是仍然需要自己拥有服务器,门槛较高只适合专业玩家。

随着云计算Serverless模式的逐渐成熟,无服务器函数计算版本的OneIndex最终于近日完成了1.0版本的构建,这将极大地降低搭建自己的OneDrive网盘的成本。这是一个成品示例: oneindex云函数版

目前已经完成了列目录、单个文件下载的基本功能,如果有更多的需求可以在我的GitHub项目上提出issue:
OneIndex-Serverless

Onindex-Serverless从一开始就被设计成了前后端完全分离的现代网站模式,其中后端是由python的Flask框架完成,前端则是React+Dva+Antd的经典模式。整个项目的部署包仅仅只有3个文件(后端1个main.py,前端1个config.json+1个index.html),可以充分减小部署的麻烦,同时提供极大的自由。

二、使用函数计算的优势

函数计算使用的是阿里云自己的Docker,在性能上足以满足需求,同时提供了非常稳定的服务。最重要的是有一个非常方便的http触发器,不需要关心域名、回源这些麻烦事,真正做到了开箱即用。

同时费率也是相当之低,堪称无成本,给大家看一下计费模式:

由于调用次数跟执行时间的免费额度根本用不完,真正的成本只有流量费,然而每次请求只会消耗上百KB的流量,成本也是可以忽略的,上千次请求只消耗了几十MB的流量,计费的时候被抹零了,相当于没有掏一分钱.


三、准备工作

0、从GitHub上下载项目的zip包,解压,找到Deploy文件夹,其中Front和Back分别是前端和后端的部署文件

1、注册您的阿里云账号,开通函数计算和对象存储两个服务

2、点击右上角,获取accessKey和accessKeySecret

为了安全起见,最好开一个只有对象存储权限的子账户



3、在对象存储服务中,新创建一个存储桶,使用默认配置即可,但要记住您选择的区域(在下一步开通函数计算服务时需要在同一区域),以及Bucket名称

在创建完存储桶后,请记下区域节点的EndPoint(选择内网的)

好了,准备工作完成了,这一步您记下的内容待会需要填在main.py中

四、部署函数计算后端

1、在上一步对象存储同一区域(比如说示例中是华东1,这一步也是华东1)中创建一个函数计算服务

2、服务创建的时候记得选择高级配置->公网访问

3、新建函数,选择Python2.7,flask-web模板

4、将main.py的全部代码复制粘贴到在线编辑器中

5、在代码编辑器中填写准备工作中获取到的accessKey、accessKeySecret、endPoint、bucketName。

6、环境配置里新建main.initializer的函数初始化入口,其它参数可以参考图中示例配置。内存跟超时选最大即可(并不会实际就用到这么多)。然后选下一步,创建完毕。

7、重新进入代码编辑界面,找到http触发器的url,将其同时填写到编辑器里的main.py的url_host中,以及部署包里Deploy/Front的config.json(下一步要用)

五、部署前端网页

部署静态网页的方法非常之多,您可以使用传统服务器上的iis、nginx、httpd等,也可以用阿里云的对象存储保存并使用CDN发布,或者用免费但是有点慢的GitHub Pages。下面介绍其中一种简单易行的方法(注意部署之前需要修改config.json中的host为http触发器的url):

GitHub Pages法

1、创建一个空的repository

2、将Deploy/Front中的index.html和config.json添加到repository的根目录下,并commit,然后publish

3、前往已发布的项目的设置中

4、找到GitHub Pages,选择master branch

5、发布成功,得到了最终的url

六、登录账号

恭喜您,到这一步,已经完成了整个项目的搭建,下面让我们开始进行账号授权吧。

1、获取账号,推荐花几块钱买一个5T账号(OneIndex的开发测试用的就是这种号,个人号或者1T的号不保证稳定使用)

2、打开后台,默认是/admin

3、输入密码(与部署函数计算阶段的一致,默认是123456)

4、查看系统状态,这里是错误示范的一种异常,原因是我的EndPoint填错了,回去改正就没问题了

5、登录账号




6、大功告成

7、后记

整个项目会持续不断地进行更新,始终保持这种简单粗暴的部署方式,未来升级只需要将代码丢过去就行了,希望大家多多支持!

原文地址: https://zhuanlan.zhihu.com/p/74538287

前端开发 Serverless 对象存储

版权声明:如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developerteam@list.alibaba-inc.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

Serverless 实战 —— 利用OneIndex-Serverless无成本搭建属于你自己的网盘相关推荐

  1. Serverless实战 —— 使用 Wintersmith + Serverless Framework 快速创建个人站点

    Serverless实战 -- 使用 Wintersmith + Serverless Framework 快速创建个人站点 作者: Tabor 首先我们来介绍下,Wintersmith 是一个简单而 ...

  2. 如何通过容器搭建稳定可靠的私有网盘(NextCloud)

    本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载.或重新修改使用,但需要注明来源. 署名 4.0 国际 (CC BY 4.0) 本文作者: 苏洋 创建时间: 2020年08月0 ...

  3. 私有云存储 linux,搭建nextcloud私有云存储网盘

    本文将要为您介绍的是搭建nextcloud私有云存储网盘,具体完成步骤: 简介: 搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队 ...

  4. 推荐几款云服务器上搭建属于自己的私人网盘

    推荐几款云服务器上搭建属于自己的私人网盘 可道云 https://kodcloud.com/ nextcloud https://nextcloud.com/ filebrowser https:// ...

  5. WordPress网站利用WP2PCS-SY插件定时、增量网站备份至百度网盘

    WordPress网站利用WP2PCS-SY插件定时.增量网站备份至百度网盘 如果我们有做过网站,如果我们做过网站丢过数据,那肯定体会到网站数据是多么重要.如果我们够勤奋,可以定期手工备份数据到本地: ...

  6. 使用腾讯云服务器搭建离线(中转)网盘

    使用腾讯云服务器搭建离线(中转)网盘 本文中,使用Aria2实现离线下载,使用Rclone实现上传.应当说,Aria2+Rclone是一个很好的组合.其中,Aria2是一款非常好用的命令行下载工具.当 ...

  7. 如何在服务器中搭建属于自己的个人网盘

    如何在服务器中搭建属于自己的个人网盘 为了这个博客,作者一天之内把服务器重装了5遍系统,请送上素质三连呗. 废话少说,附上搭建过程: 准备工作 1.准备一个Windows服务器 2.准备可道云服务器源 ...

  8. php远程连接真机实现,搭建nextcloud私有云存储网盘的教程详解

    Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步.共享.版本控制.团队协作等功能.它的客户端覆盖了Windows ...

  9. 我的 Serverless 实战 — 云函数本地开发环境搭建

    文章目录 一.CloudBase CLI 开发环境 二.Node.js 安装 三.CloudBase CLI 安装 四.CloudBase CLI 关联腾讯云账号 五.使用本地开发环境创建云函数 六. ...

最新文章

  1. ASP.NET中删除文件夹下的文件
  2. 学习lulu之——tips 提示
  3. 数据库:redis和MySQL如何做到数据的一致性?
  4. Redis进阶实践之十八 使用管道模式提高Redis查询的速度
  5. Python基础-三次用户验证登录购买商品程序
  6. 用HTML,CSS和JavaScript创建iPhone/iPad应用程序
  7. UE4学习-阶段性总结1
  8. TYUT程序设计比赛2017回顾
  9. PostgreSQL 10.0 preview 功能增强 - 增加access method CHECK接口amcheck
  10. LeetCode使用简介(leetcode中国-力扣)
  11. localdatetime 后一天_LocalDateTime 获取上个月最后第一天及最后一天
  12. 小学生必积累的名人名言汇总100条
  13. 【codevs2853】方格游戏 DP
  14. vue 自定义事件 传入额外参数
  15. 弱网测试究竟要怎么做,才能防止漏测?
  16. Creo AFX钢结构设计视频教程
  17. 单片机与 PC 机串口通信实验
  18. 图像加噪与滤波【C#】
  19. VMware克隆Linux虚拟机
  20. Riak 简介,第 1 部分: 与语言无关的 HTTP API

热门文章

  1. GIT学习笔记1--基本使用
  2. 自己动手架设linux下Web服务器(图)4
  3. 有关UIView、subview的几个基础知识点-IOS开发 (实例)
  4. 22个国外电子商务系统
  5. 【PDF】PDF无法注释的一种解决方案
  6. 断开式 DataGridView控件 winform
  7. css基础选择器 1204
  8. for循环的使用步骤 1104
  9. django-自定义转换器-实操案例
  10. python-万能函数装饰器