利用fodi给onemanager前后端分离(1):将fodi py后端安装在腾讯免费cloudbase

利用可编程大容量网盘onedrive配合公有云做你的nas及做站 本文关键字:onedrive打造你的网站图床大文件外链床,sync as network,网盘附件床,onemanager http解发 在《免租用云主机将mineportal2做成nas,是个人件也可服务于网站系统》中我们提到将nas和个人网站合一的思路,,在《mineportal – 一个开箱即用的wordpress+owncloud作为存储后端》我们提到用网盘做网站图床甚至all webapp backend storage的思路,在《统一的分布式数据库和文件系统mongodb,及其用于解决aliyu 阅读详情

本文关键字:将fodi py后端安装在腾讯cloudbase

在前面《利用onemanager配合公有云做站和nas》中,我们提到onemanager是个可以装在腾讯云函数API网关或cloudbase上作为云函数的产品,onemanager php backend它本身也是调用onedrive的api,在前面《owncloud微博式记事本》《wp2oc fileshare》中我们也提到这种web api的修改定制。最近的《打造小程序版本公号和自托管的公号:miniblog》也是这种例子,后端cloudfuntion化,前端miniprogram则被部署到微信,,前后端分离和web api化调用是早已流行的趋势。

在《利用onemanager配合公有云做站和nas》中我们也提到要继续为onemanager找提高浏览体验用的缓存方案静态化方案,onemanager拉取文件列表延迟高体验不佳(这种延迟一部分就是它本身前后端不分离,一次返回结果混合了渲染html的客端逻辑,客户端也没有 ajax,另一部分是onemanager这类程序本身也是使用api的,返回结果来自OD本身是外部的,其只有有限的doctrine缓存技术,没有像混合云那样的多样化混合本地和远程云结果构建高效网站体验的能力),这次我们找到了fodi。其前后分离和客户端ajax技术,体验比单纯的onemanger要好得多,fodi分离的好处是,相当大部分逻辑都被放在了客户端。如浏览文件,服务器仅负责一次返回一些json数据,现在的浏览器本身一般也有本地缓存存储。,整个可以带来类似pwa,js based react native app的效果,这也是fodi名字中的fast的理念技术基础。

我们的目标是使od像fodi那样前后端分离,并研究尝试让它接上fodi前端的方法。----- 等等,直接用fodi前后端一套流不香吗?fodi有二个后端,一个backend_cf for cloudflare,一个py for 云函数,fodi py后端输出的是加密的json对我们接下来的研究不够直观化(除非chrome f12),而nodejs端直接输出直观的json结果,但nodejs runtime(<=10.15)又不支持addeventlistener(),它是cloudflare的webwoker api用的(这是一种客户端API,然而CF把它ported到了服务端),所以我们打算用改造onemanager的结果来适配fodi前端。使之成为fodi的php backend。

注意:Fodi有部分预拉取列表功能,所以产生的云函数调用会比较多(所以推荐将fodi装到vps),但是om的缺点是云函数调用流量方面也相对较多。

这里还是介绍将fodi后端部署到cloudbase的方法

上传和修改后端逻辑:

用cloudbase-cli提交backend-py:

{
  "envId": "default-4gpm7vnrb911600e",
  "functionRoot": "functions",
  "functions": 
  [{
    "name": "fodi",    //fodi就是backend-py
    "timeout": 6,
    "runtime": "Python3.6",
    "memorySize": 128,
    "installDependency": true,
    "handler": "index.main_handler"
  }]
}

以下保证要使用https://xxxx.service.tcloudbase.com/fodi形式的调用路径(后台的接入路径定义):

def router(event):
    """对多个 api 路径分发
    """
    door = 'https://' + event['headers']['host']
    print('door:'+door)
    func_path = '' #event['requestContext']['path'] //置空
    print('func_path:'+func_path)
    
    api = event['path'].replace(func_path, '').strip('/') 
    api_url = door + '/fodi' + event['path']  //加一个fodi串

    queryString = event['queryStringParameters']  //这里改
    body = None
    ......

弄好后,访问上面的接入路径,仅/fodi,输出path error和后面一长串东西就代表服务器搭建正常,

获取refresh token

然后就是那个refreshtoken的获取,http://scfonedrive.github.io已经挂掉了,我们可以自建,先在某网站下建一个get.html:

<html><meta charset=utf-8><body><h1>Error</h1><p>Please set the <code>refresh_token</code> in environments<br>
    <a href="" id="a1">Get a refresh_token</a>
    <br><code>allow javascript</code>
    <script>
        url=window.location.href;
        if (url.substr(-1)!="/") url+="/";
        url="https://login.partner.microsoftonline.cn/common/oauth2/v2.0/authorize?scope=https%3A%2F%2Fmicrosoftgraph.chinacloudapi.cn%2FFiles.ReadWrite.All+offline_access&response_type=code&client_id=04c3ca0b-8d07-4773-85ad-98b037d25631&redirect_uri=https://scfonedrive.github.io&state="+encodeURIComponent(url);
        document.getElementById('a1').href=url;
        //window.open(url,"_blank");
    </script>
    </p></body></html>

如果是国际版url换成:
 url="https://login.microsoftonline.com/common/oauth2/v2.0/authorize?scope=https%3A%2F%2Fgraph.microsoft.com%2FFiles.ReadWrite.All+offline_access&response_type=code&client_id=4da3e7f2-bf6d-467c-aaf0-578078f0bf7c&redirect_uri=https://scfonedrive.github.io&state="+encodeURIComponent(url);

再在根下建一个index.html

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
	<head>
		<title>OneManager jump page</title>
	</head>
	<body>
		<a id="direct">No link here!</a><br>
		If not auto jump, click the link to jump.<br>
		如果长时间未跳转,请点击上方链接继续安装。<br>
		<label id='test1'></label>
		<script>
      			var q = new Array();
			var query = window.location.search.substring(1);
			//document.getElementById('test1').innerHTML=query;
			var vars = query.split("&");
			for (var i=0;i<vars.length;i++) {
				var pair = vars[i].split("=");
				q[pair[0]]=pair[1];
			}
			var url = q['state'];
			var code = q['code'];
			if (!!url && !!code) {
				url = decodeURIComponent(url);
				if (url.substr(-1)!="/") url+="/";
				var lasturl = url+"?authorization_code&code="+code;
				document.getElementById('direct').innerText = lasturl;
				document.getElementById('direct').href = lasturl;
				window.location = lasturl;
			} else {
				var str='Error! 有误!';
				if (!url) str+='No url! url参数为空!';
				if (!code) str+='No code from MS! 微软code为空!';
				document.getElementById('test1').innerHTML=str+'<br>'+decodeURIComponent(query);
				alert(str);
			}
		</script>
	</body>
</html>

把get中scfonedrive.github.io换成你的index.html所在的网站地址,(之后保证把py后端中用于认证的地址和那个clientid,clientsecret替换用你自己新建的一个,具体方法见我前面的一些文章)

调用后结果显示在url中(整个页面显示404是没有处理结果的php后端,除非你把https://github.com/qkqpttgf/OneDrive_SCF部署在index.html所在的网站),分辨复制即可。

安排好后端和refreshtoken后,调用接入路径/fodi/fodi/,输出看到其输出的加密的json结果,就代表refreshtoken也正常了。
开始部署前端,可以另外一个网站,能托管html的就行。也可以在后端另起一函数,部署如下index.py:

#!/usr/bin/env python
# -*- coding:utf-8 -*-


def main_handler(event, context):
    f = open("./front.html", encoding='utf-8')
    html = f.read()
    return {
        "isBase64Encoded": False,
        "statusCode": 200,
        "headers": {'Content-Type': 'text/html; charset=utf-8'},
        "body": html
    }

front.html当然是配置好的那个前端文件。

如果你fodi前端调用发生for each,length之类的提示错误,往往是refresh token没获取对。如果发生跨域错误(chrome f12可看到),则在后端面板中需要配置一条客户端网站的安全域名。


整个代码也较大,我们稍后将3rd依赖库精简掉,把那个加密逻辑去掉让输出常态化。



(此处不设回复,扫码到微信留言,或直接点击到原文)

OneManager-cfworkerskv:部署在cloudflare的workers中的OneManager OneManager-cfworkerskv 1,进KV,添加命名空间,名字随便英文2,进工,新建,粘贴代码,保存3,在工作人员设置中,KV命名空间绑定,变量名称填入OMKV,右边拖动选择。 4,访问开始安装。 熟悉的操作过程,做配置不用动代码,一路点点点。 只是主要功能可用,可以添加盘,可以刷新缓存。不可用:加密目录,管理操作,上传。 立即下载

相关推荐

FODI:Fast OneDrive Index,OneDrive 秒级列表程序

FODI Fast OneDrive Index / FODI,无需服务器的 OneDrive 快速列表程序 预览 功能 接近秒速列表 指定展示路径 特定文件夹加密 无需服务器免费部署 基本文本、图片、音视频和 Office 三件套预览 缺点 功能简单,界面简陋 不支持巨硬家的 IE 和 UWP 版 EDGE 浏览器 可能不支持包含千级数量以上文件的文件夹展示 更新 2019.12.23 进一步提升速度 增加 Cloudflare Workers 后端 2019.12.07 进一步提升速度 增加 Python3.6 后端 安装

利用cloudflare works搭建个人网盘站——免费免服务器搭建基于onedrive的网盘站(2020版)

FODI是一款 OneDrive 秒级列表程序,之前就支持腾讯云SFC搭建基于onedrive的网盘站,但是现在腾讯云api要收费了(cloudflare的访问速度没有腾讯云的SFC快),所以其作者增加了cloudflare workers版。其好处是:免费、不需要服务器。现在这个FODI并不是仅需cloudflare workers就能搭建的,其前端还需使用github pages搭建,那...

qq_38243612的博客 1万+

穿透鼠标实现后台点击,适用于任何窗口!【后台鼠标】【风雪】

也许你就是被这标题吸引来的,呵呵!好久没发帖了,勾引一下大家的胃口,当然有的人已经猜出原理了!既然来了,都要把原理学回家,不然就没意思了!很多游戏现在都不支持后台消息鼠标,要实现真的不是简单的,什么注入dll啊,什么hook俺也学不懂,那就简简单单另辟蹊径了下面来讲讲原理吧(下面的玩玩可以,用于实际不现实,俺也不藏了,看到这么多人回复,良心过意不去,呵呵)首先,将要点击的窗口上面覆盖的所有窗...

weixin_34129145的博客 1万+

6元做一个2.6m/s下行、5T存储的私人网盘

最终效果Demo: https://pan.rawchen.com 其中文件存储服务都由微软托管了,因此不用担心服务商跑路问题。 步骤如下 购买OneDrive激活码或帐号 如激活码的则创建固定后缀的微软帐号 通过OneDrive上传下载 到这一步就能使用5T网盘了,但是太Low了,只能通过web端查看下载上传,也不能直接在线查看。 注册 Cloudflare 并创建 Workers 按照指引部署生成所需代码 部署 FODI 前端展示云盘列表 购买OneDrive激活码或帐号

RawChen · Blog 661

子网划分详解

还不会子网划分?看这篇就够了,保姆级教程

m0_47584619的博客 6093

宇树机器人G1二次开发:导览、起始点、目的地与完整示例

通过宇树G1 SDK的导航接口,开发者可以高效地实现机器人的自主移动功能。连接 -> 设置目标点 -> 发送命令 -> 监控状态。本文提供的完整示例涵盖了从环境搭建到代码实现的全部步骤,并解释了起始点、目的地等关键概念。开发者可以在此基础上,结合多目标点巡逻、动态避障(需高级配置)等功能,构建更复杂的机器人应用。建议读者先在小范围、熟悉的平坦环境中测试,成功后再逐步扩展到更复杂的场景。

m0_52645558的博客 747

宝塔onemanager-php,cubepaas容器虚拟机安装OneManager – 包括onedrive和Sharepoint

cubepaas容器虚拟机吃灰好久了,今天觉得还是要用起来比较好,因为国内机器,G口带宽速度上还是很有保障的,唯一的缺点就是需要加上端口号。不过端口号也可以解决,用cdn就可以搞定。如果有北岸的域名,那么这就不是问题了。今天这篇文章我来说说用cubepaas容器虚拟机安装OneManager~~~注意:本文用的是onedrive的国内版也就是世纪互联来测试安装,国内的机器加上世纪互联,这个速度完美...

weixin_28733933的博客 685

详细介绍:国产操作系统银行麒麟V10的下载和安装

银河麒麟是由。银河麒麟已经发展为银河麒麟服务器操作系统、桌面操作系统、嵌入式操作系统、麒麟云、操作系统增值产品为代表的产品线。为攻克中国软件核心技术“卡脖子”的短板,银河麒麟建设自主的开源供应链,发起中国首个开源桌面操作系统根社区openKylin,银河麒麟操作系统以openKylin等自主根社区为依托,发布最新版本。

lz17267861157的博客 1万+

腾讯云无服务器云函数搭建onedrive网盘教程

前言 通过在环境变量中手动添加Region值来暂时解决无法使用腾讯云函数创建OneManager的问题。 大部分Onedrive的个人网盘都需要使用VPS服务器来搭建,本文所涉及的腾讯SCF云函数算是个例外。前几天腾讯云函数的api调用url更新了导致没法直接从url获取Region,因此简单更新了一下,需要自己将Region添加到环境变量中。 2019年12月4号起,腾讯云函数流量开始...

点滴记忆 2520

PyTorch实战:A2C算法在Pendulum环境中的调参技巧与收敛优化

本文详细介绍了使用PyTorch实现A2C算法在Pendulum环境中的调参技巧与收敛优化方法。通过分析Pendulum环境特性、设计高效的网络架构、优化超参数设置以及提升训练稳定性,帮助开发者掌握强化学习中的policy-based方法。文章特别强调了奖励工程、优势估计改进和梯度裁剪等关键优化策略,为连续控制任务提供了实用解决方案。

rum55的博客 213

DMR对讲机的基本概念理解

刚刚入手DMR对讲机,尚未成功联通。国内互联网上能找到的资料很少,大多数也都是一些DMR协议介绍之类的玩意,对实际操作没有指导意义。以下全部是这几天在网上研究各种资料得出的个人思考,如有错误请斧正。 相比与模拟通讯系统,DMR将语音信号转换为包的形式进行收发。将DMR对比成TCP/IP系统会更容易理解。 一般DMR对讲机都支持模数双通,说明DMR应该使用了跟FM同样的无线AP组件,只在解码上有区别。对讲机先使用DMR进行数字解码,解码成功则说明是数字信号,不成功则使用模拟方式再次进行解码。可以对等理解为

1万+

Onedrive分享型网盘搭建 - FODI

原文地址:http://bili33.top/2020/02/09/FODI/ 本人有两个onedrive账号,一个自用,另外一个是前几天蹭的edu账号,之前一直想用onedrive来分享文件(毕竟容量是真的大),就在放寒假前,我发现了github的一个项目:FODI,虽说这UI不是很好看,但是不用服务器(嗯,让白嫖党有点快乐了),所以就动起了手…… 官方教程:https://logi.im/f...

qq_34018668的博客 4147

多周期路径及set_multicycle_path详解

默认情况下,每条路径都被定义为单周期,即源触发器在时钟的任一边沿启动(launch)的数据都应该由目的触发器在时钟的下一上升沿捕获(capture)。 有的设计需要在数据被捕获前提供一些额外的周期,这类路径被称为多周期路径。 一、set_multicycle_path命令 命令格式如下: set_multicycle_path .........

Jackiezhang1993的博客 4万+

spring后端让页面alert_利用fodi给onemanager前后端分离(1):将fodi py后端安装在腾讯免费tcb...

本文关键字:将fodi py后端安装在腾讯cloudbase在前面《利用onemanager配合公有云做站和nas》中,我们提到onemanager是个可以装在腾讯云函数API网关或cloudbase上作为云函数的产品,onemanager php backend它本身也是调用onedrive的api,在前面《owncloud微博式记事本》《wp2oc fileshare》中我们也提到这种web ...

weixin_42394100的博客 142

深度学习入门:使用CMSIS-NN在微控制器上部署模型的完整指南与Python Jupyter实践

CMSIS-NN是ARM为Cortex-M系列微控制器设计的神经网络库。它旨在提供一套高效、轻量级的神经网络API,使得开发者可以在资源受限的微控制器上运行深度学习模型。CMSIS-NN优化了各种常见的神经网络层,如卷积层、全连接层等,确保它们在微控制器上的运行效率。# 定义模型])# 编译模型# 训练模型这样,我们就得到了一个简单的手写数字识别模型。注意:为了简洁和清晰,本文中的代码可能不是最优的或最完整的实现。为了获得完整的项目和更多的优化技巧,请下载完整项目。

m0_57781768的博客 5884

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

无需服务器0成本搭建自有网盘FODI-基于cloudflare worker 和Onedriver

由于FODI网盘官方部署过程中,获取Refresh token经常出现问题。,故此我采用了Onemanage这个项目进行中转获取。同时,由于FODI是使用的开发者自己的Client ID和Secret,我们需要将其更改为自己的Client ID密钥以便满足Onedriver开发者续订要求。前提条件:Onedriver账号,此次用到的账号为E5开发者Onedriver账号Cloudflare账号FODI项目可选(FODI前端部署)Onemanage项目Heroku账号(不支持QQ邮箱)参考文档:Gamerno

weixin_49615086的博客 1197

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

攻略丨云开发VS Code 插件 CloudBase Toolkit 云函数调试

Tencent CloudBase Toolkit 插件 0.2.0 版起支持云函数本地调试和云端调试两种调试模式。 本地调试:使用 CloudBase CLI 在本地模拟运行 Node.js 云函数,云函数的 event 和 context 均为模拟参数,适合本地开发 云端调试:使用云端的云函数实例进行调试,所有的参数、环境均与云端一致,适合定位复杂的线上问题 云开发介绍 云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、自动弹性扩缩

TCB_CloudBase的博客 1400

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

腾讯云函数免费搭建onedrive网盘

目录腾讯云函数介绍真免费?搭建教程准备条件创建云函数创建触发器配置SecretId和SecretKey添加onedriver盘自定义域名访问路径处理总结搭建期间遇到的问题想法借鉴腾讯云函数 介绍 云函数 (Serverless Cloud Function,SCF) 是腾讯云为企业和开发者们提供的无服务器执行环境。无服务器并非真的没有服务器,而是说用户无需购买服务器,无需关心服务器 CP......

陈灬大灬海 3501

onedrive-cf-index 搭建教程

部署此项目较为麻烦,按照教程安装结果发现都是坑。如果各位没有耐心,请转onemanger安装,onemanger安装较为简单。 在线体验 项目地址 演示版 获取Token 获取client_id和client_secret 进入azure面板应用注册界面,注册一个新app名称【使用微软账号】,重定向URL:https://heymind.github.io/tools/microsoft-graph-api-auth 也可以用http://localhost,但后期redirect_uri改为ht.

云墨小站 1334

宝塔onemanager-php,Onedrive+OneManager+Heroku+CFWorkers – 谁也看不出我没服务器

额,mjj上看的一个新玩法,在Heroku部署OneManager,之后用CFWorkers 来加速访问,整个过程就是Onedrive+OneManager+Heroku+CFWorkers来部署一个列表程序。好处就是不花一分钱,缺点就是折腾起来太麻烦,这篇文章就来详细记录下部署过程。部署好之后下载走的CF Workers的,上传还是你对微软直接上传。1、准备1)Onedrive,或Sharepo...

weixin_42165018的博客 699

OneManager+CloudFlare Workers部署教程

OneManager+CloudFlare Workers:CFW版OM·图文部署教程【支持世纪互联OD和世纪互联SP】 仓库地址 项目地址 部署方法 1、环境构建 进KV,添加命名空间,名字随便英文 进workers,新建,粘贴代码,保存 代码地址 在workers设置中,KV 命名空间绑定,变量名称填入OMKV,右边下拉选择你对应的KV空间 2、上机安装 3、挂载网盘 4、绑定自定义域名 添加CFW路由 ...

云墨小站 2190

利用fodi给onemanager前后端分离(2):测试json

本文关键字:利用onemanager给fodi做php后端 在前面《利用fodi给onemanager前后端分离1》中我们介绍了在cloudbase上安装fodi py后端的方法,这里继续尝试将om作为fodi的后端也尝试弄上。 这里要说个历史,fodi的作者也是参考了onemanager的,精简的onemanager流程就是fodi backend那些(https://github.com/qkqpttgf/OneDrive_SCF即是那个最简的php后端)。别看onemanager比fodi体量比fod

minlearn's techrepos 533

Onedrive云盘程序——OneManager小白设置指南

OneManager是什么 这是一个利用微软onedrive api将onedrive目录映射成一个云盘的程序,类似的程序有很多,比如OneIndex、Pyone、OnePoint等等。这个程序的特点是支持多种onedrive类型,可以部署在vps,heroku,以及腾讯云scf上。项目地址我的Demo 部署教程 参考项目readme说明,网上也有不少教程,这不是本文的重点。 后...

点滴记忆 8058

将你的网站解析到1.0.0.1,Cloudflare羊毛薅到底

Cloudflare这个域名解析服务商相信很多人一定不陌生,它好像是目前唯一免费提供CDN服务的商家,但由于其cdn服务器多数在国外,在国内的访问速度不佳,甚至起不到加速效果,反而会减速。但通过cdn访问,能是你的服务器匿名性提升不少,也能有效避免DDOS攻击,还能减少服务器流量开支,何乐而不为呢? 那么有没有办法更换DNS服务器地址呢?官网上也确实提供了更改CNAME地址的服务,不过是要收费的...

江风引雨的博客 4359

OneManager搭建

前言 由于国内的GFW,网页版的OneDrive在国内打不开导致Onedrive的使用场景非常受限,但是OneDrive在国内的下载速度还算是可以,因此想要搭建一个中转服务器来处理OneDrive网页版无法使用的问题,目前采用的方式是使用OneManager来代理访问。 安装 首先到项目地址下载压缩包,上传到服务器,其次我们还需要Nginx和PHP进行解析和转发处理。Nginx的安装以及PHP的安装见之前的博客。 上传完成后,需要解压到Nginx中html目录下oneManager文件夹,并修改Ng

routeros专栏 1742

利用onemanager配合公有云做站和nas(2):在tcb上装om并使它变身实用做站版

本文关键字:tcb上安装onemanager,onemanger实用做站 在《利用大容量网盘onedrive配合公有云做你的nas及做站》中,我们初步谈到了使用onemanager配合云函数或云主机做站的投入和尝试,前文说到不能在腾讯cloudbase上安装onemanager,但实际上经过尝试发现是可以的: 注意:云函数产品建议使用包月免费或包月套餐尝试。按量如果控制不好,可能会因为代码问题或外部攻击造成高额费用,比如腾讯scf按量下如果免费额度用完,24小时才停机不会立马停,而且它的计费即使你帐号没钱也

minlearn's techrepos 1000
上一篇: 一种matecloudos的设想及一种单机复杂度的云mateapp及云开发设想
下一篇: 利用fodi给onemanager前后端分离(2):测试json
Minlearn
博客等级 码龄18年 20粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值