|
本帖最后由 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 |
|