每日一篇,使用Cloudflare Workers反代OneDrive 来加快下载速度,能提高到10M/S

前言

我们在用OD下载的时候,因为OD的服务器在国外,因此我们就需要反代来对下载进行加速,而国内的大带宽是真贵,因此懂的

好了,其它不说直接进主题

注册/登陆账号
https://dash.cloudflare.com/sign-up

可以在右上角选择语言版本用中文,当然英语好的同学可以忽略了

创建子域名

这些按会员中心菜单就行

创建Workers

// 替换成你OneDrive的网址
const upstream = '*-my.sharepoint.com'// 替换成你OneDrive的网址
const upstream_mobile = '*-my.sharepoint.com'// 下面的配置都不用动
const upstream_path = '/'const blocked_region = ['KP', 'SY', 'PK', 'CU']const blocked_ip_address = ['0.0.0.0', '127.0.0.1']const https = trueconst disable_cache = falseconst replace_dict = {'$upstream': '$custom_domain','//sunpma.com': ''
}addEventListener('fetch', event => {event.respondWith(fetchAndApply(event.request));
})async function fetchAndApply(request) {const region = request.headers.get('cf-ipcountry').toUpperCase();const ip_address = request.headers.get('cf-connecting-ip');const user_agent = request.headers.get('user-agent');let response = null;let url = new URL(request.url);let url_hostname = url.hostname;if (https == true) {url.protocol = 'https:';} else {url.protocol = 'http:';}if (await device_status(user_agent)) {var upstream_domain = upstream;} else {var upstream_domain = upstream_mobile;}url.host = upstream_domain;if (url.pathname == '/') {url.pathname = upstream_path;} else {url.pathname = upstream_path + url.pathname;}if (blocked_region.includes(region)) {response = new Response('Access denied: WorkersProxy is not available in your region yet.', {status: 403});} else if (blocked_ip_address.includes(ip_address)) {response = new Response('Access denied: Your IP address is blocked by WorkersProxy.', {status: 403});} else {let method = request.method;let request_headers = request.headers;let new_request_headers = new Headers(request_headers);new_request_headers.set('Host', upstream_domain);new_request_headers.set('Referer', url.protocol + '//' + url_hostname);let original_response = await fetch(url.href, {method: method,headers: new_request_headers})connection_upgrade = new_request_headers.get("Upgrade");if (connection_upgrade && connection_upgrade.toLowerCase() == "websocket") {return original_response;}let original_response_clone = original_response.clone();let original_text = null;let response_headers = original_response.headers;let new_response_headers = new Headers(response_headers);let status = original_response.status;if (disable_cache) {new_response_headers.set('Cache-Control', 'no-store');}new_response_headers.set('access-control-allow-origin', '*');new_response_headers.set('access-control-allow-credentials', true);new_response_headers.delete('content-security-policy');new_response_headers.delete('content-security-policy-report-only');new_response_headers.delete('clear-site-data');if (new_response_headers.get("x-pjax-url")) {new_response_headers.set("x-pjax-url", response_headers.get("x-pjax-url").replace("//" + upstream_domain, "//" + url_hostname));}const content_type = new_response_headers.get('content-type');if (content_type != null && content_type.includes('text/html') && content_type.includes('UTF-8')) {original_text = await replace_response_text(original_response_clone, upstream_domain, url_hostname);} else {original_text = original_response_clone.body}response = new Response(original_text, {status,headers: new_response_headers})}return response;
}async function replace_response_text(response, upstream_domain, host_name) {let text = await response.text()var i, j;for (i in replace_dict) {j = replace_dict[i]if (i == '$upstream') {i = upstream_domain} else if (i == '$custom_domain') {i = host_name}if (j == '$upstream') {j = upstream_domain} else if (j == '$custom_domain') {j = host_name}let re = new RegExp(i, 'g')text = text.replace(re, j);}return text;
}async function device_status(user_agent_info) {var agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];var flag = true;for (var v = 0; v < agents.length; v++) {if (user_agent_info.indexOf(agents[v]) > 0) {flag = false;break;}}return flag;
}

自己自定义前缀,点击保存并部署,会得到一个网址 https://*.workers.dev/ 也可以用默认的这个您自己把握

创建后,在workers的刚创建里面,把上面的代码填入,然后把前缀改一下,然后 那自定义的或者默认的地址访问一下

此时打开链接应该是office登陆的界面

好了教程到这儿了,有什么疑问,评论区留言!

此篇文章来源于寻代码:每日一篇,使用Cloudflare Workers反代OneDrive 来加快下载速度,能提高到10M/S


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部