使用CloudFlare Workers反代任何图片
本帖最后由 qctech 于 2021/8/24 09:08 编辑使用场景:
- 原图片地址被封锁
- 防止图片服务器收集、记录用户信息
- 加速(?)
源代码
function jugeUrl(URL) {
var str = URL;
//判断URL地址的正则表达式为:http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
//下面的代码中应用了转义字符"\"输出一个字符"/"
var Expression = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
var objExp = new RegExp(Expression);
if (objExp.test(str) == true) {
return true;
} else {
return false;
}
}
function isBase64(str) {
if (str ==='' || str.trim() ===''){ return false; }
try {
return btoa(atob(str)) == str;
} catch (err) {
return false;
}
}
addEventListener("fetch", event => {
let url = new URL(event.request.url);
if(isBase64(url.pathname.substr(1))){
img_url = atob(url.pathname.substr(1))
url.href = img_url;
}else{
return false;
}
if(!jugeUrl(img_url)){
return false;
}
let request = new Request(url, event.request);
event.respondWith(
fetch(request, {
headers: {
'Referer': url.hostname,
}
})
);
});
使用方法:
将原图片URL Base64编码一次,拼接到Workers的URL后即可
效果预览
https://pic.qc.workers.dev/aHR0cHM6Ly9hdHQuaXR6bXguY29tL2xvZ28ucG5n
https://pic.qc.workers.dev/aHR0cHM6Ly9hdHQuaXR6bXguY29tL2xvZ28ucG5n 这个可以干嘛 {:128:} LG147 发表于 2021/8/24 20:05
这个可以干嘛
外链分享 P 站图片{:3128:} qctech 发表于 2021/8/24 20:32
外链分享 P 站图片
{:3345:}
页:
[1]