qctech 发表于 2021/8/24 09:07

使用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

LG147 发表于 2021/8/24 20:05

这个可以干嘛 {:128:}

qctech 发表于 2021/8/24 20:32

LG147 发表于 2021/8/24 20:05
这个可以干嘛

外链分享 P 站图片{:3128:}

LG147 发表于 2021/8/24 22:03

qctech 发表于 2021/8/24 20:32
外链分享 P 站图片

{:3345:}
页: [1]
查看完整版本: 使用CloudFlare Workers反代任何图片