我已经介绍了一对谈论OnedRive的内容的方法,可以使用CloudFlare工人或使用Heroku。您可以从我以前的帖子中找到它们:

此外,我还记录了视频以显示整个过程:

将OneManager部署到Heroku很简单且简单,但有两个问题会导致OneManager将失败。 

  1. 新账户可获得550个免费Dyno小时,您可以使用信用卡验证您的身份还需450小时。
  2. 在不活动30分钟后,该应用程序将自动放入空闲模式。在收到访问活动时唤醒它需要1-2分钟。 

要解决这两个问题,我开发了以下三个步骤来绕过它们。

演示网站: //myod.51sec.eu.org

将两个OneManager部署到两个不同的Heroku帐户中

令我们说,您创建了两个Heroku帐户,并将两个OneManager应用程序部署到其中一个逐个帖子中描述的进程:

您有以下两个OneManager应用程序:

  1. //ift.tt/3sHs0tB
  2. //ift.tt/2RSZJ6B

它们与App Name和App URL不同的不同之处。两个应用程序都在其中添加了相同的OneDrive磁盘。 

它背后的逻辑可以使用两个OneManager应用程序,这不是让我们超过550小时/月的限制,如果我们每天只激活一个应用程序并保持另一个应用程序。 

创建CloudFlare工人以旋转对这两个应用程序的访问权限

现在,我们需要告诉CloudFlare工人在一天内只指向一个应用程序,并在另一天达到Anther应用程序。 

GitHub项目: //github.com/51sec/CF-Herokus/

基本上,这个工人代码将获得CloudFlare将流量路由到奇数几天和Myod2甚至数天的Myod2。 


// odd days const SingleDay =
'myod1.herokuapp.com' // plural days const DoubleDay = 'myod2.herokuapp.com' // Using CF to do porxy? true/false const CFproxy = true // Heroku only has 550 hours/month for free plan by default. // This CloudFlare Workers code can let use different Heroku app based on odd or even number's day. // Please change above code for your Heroku's app in either SingleDay or Doubleday parameter. addEventListener('fetch', event => { let nd = new Date(); if (nd.getDate()%2) { host = SingleDay } else { host = DoubleDay } if (!CFproxy) { let url=new URL(event.request.url); if (url.protocol == 'http:') { url.protocol = 'https:' response = Response.redirect(url.href); event.respondWith( response ); } else { url.hostname=host; let request=new Request(url,event.request); event.respondWith( fetch(request) ) } } else { event.respondWith( fetchAndApply(event.request) ); } }) async function fetchAndApply(request) { let response = null; let url = new URL(request.url); if (url.protocol == 'http:') { url.protocol = 'https:' response = Response.redirect(url.href); return response; } url.host = host; let method = request.method; let body = request.body; let request_headers = request.headers; let new_request_headers = new Headers(request_headers); new_request_headers.set('Host', url.host); new_request_headers.set('Referer', request.url); let original_response = await fetch(url.href, { method: method, body: body, headers: new_request_headers }); response = new Response(original_response.body, { status: original_response.status, headers: original_response.headers }) return response; }

当然,不要忘记设置DNS一个记录(Myod.51sec.eu.org)和工人路线。

从www.easycron.com创建两个Cron作业

由于Heroku将在空闲模式下将您的应用程序放在闲置模式下,只需30分钟,我们将需要创建一个Cron作业即可在每30分钟内获得该网站 www.easycron.com. 地点。我们需要创建两个Cron作业,一个用于奇数几天来获取Myod1.herokuapp.com,第二个是甚至是甚至是数天的第二个,以获得我的od2.herokuapp.com。

完成后,即您需要在Heroku设置一个OneManager,这将在使用CloudFlare DNS访问您的网站时所有时间都会让您的网站才能结束用户。 

参考

来自Blogger. http://blog.fabiandinkins.com/2021/04/deploy-onemanager-to-heroku-and-bypass.html

经过 Jon.

发表评论