cfworker拉各种大文件一把梭

查看 115|回复 9
作者:小猪佩奇   
   
准备一个cf账号,一个域名并接入
添加一个A记录,随便解析,打开小云朵。
回到首页,点开左边的worker和pages。
根据提示,创建一个应用程序→部署→编辑代码,全选覆盖并保存部署。
[ol]addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
  const newUrl = request.url.replace("https://你的域名/https://", "https://")
  const response = await fetch(newUrl)
  // you may want to add caching headers here to improve performance
  // as well as handling errors if the upstream server is down
  return response
}
[/ol]复制代码
【注意替换域名,要拉的如果是http,则修改域名后面对应的https】
点开刚部署的worker,在触发器→自定义域里添加刚刚的域名。
接着点下面的添加路由,填入刚解析的域名,示范:a.b.com/*,然后保存。
最后测试下,https://域名/https://speed.hetzner.de/100MB.bin
应用场景:拉github,拉civitai/huggingface模型,省去开代理的麻烦。

域名, 定义域, 代码

uking   
   
看下这个,用gpt写的
[ol]
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
  let targetUrl = new URL(request.url).pathname.slice(1);
  if (targetUrl === '') {
    return new Response('Hello, world!', {status: 200});
  }
  if (!targetUrl.includes('http://') && !targetUrl.includes('https://')) {
    targetUrl = 'http://' + targetUrl;
  }
  try {
    const response = await fetch(targetUrl, {headers: request.headers});
    const downloadResponse = new Response(response.body, response);
    downloadResponse.headers.set('Content-Disposition', 'attachment');
    return downloadResponse;
  } catch (error) {
    return new Response(`Request to ${targetUrl} failed: ${error}`, {status: 502});
  }
}
[/ol]复制代码
SuperMaster   
技术贴占位。即将超多人收藏的热帖广告位出租。
大杀器   
信息收藏成功
sai   
   
mjj天下第一   
主要是cf现在也不好用
chxin   

sai 发表于 2023-7-12 19:48
能不能改进下,支持动态变化地址,比如进入谷歌,可能无法搜索报错,或者有可能人机验证(不会出验证),bi ...

这样为什么不用代丽,人家本来是解决文件下载问题的,你这要求也太高了
goloc   
   
带端口的域名貌似不能正常转发,80/443 除外,它貌似会把端口号自动去掉
hcyme   
学习
Hetzner   
civitai的r2桶似乎是正常的,起码我这可以裸连,50MB/s
您需要登录后才可以回帖 登录 | 立即注册

返回顶部