跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 利用 cloudflare 写了个下载辅助工具
未分類
31 12 月 2019

利用 cloudflare 写了个下载辅助工具

利用 cloudflare 写了个下载辅助工具

? Demo link:https://proxy.onesrc.workers.dev

下载走 Cloudflare,支持断点续传,mime 响应与原链接一致。不支持非直链下载,不支持重定向。目前作者只实现了简单的下载功能,如果想要美化网页可以自己动手

本工具也是 Workers 的一个实用实践,可以解决在无代理电脑上下载 Github 等慢的问题。

=================================================

简单说明

demo:

https://proxy.onesrc.workers.dev/

下载走 cloudflare,支持断点续传,mime 响应与原链接一致。

但不支持非直链下载。

例如 Github 下载速度过慢,可使用本工具加速。

代码示例

addEventListener('fetch', event => {
    event.respondWith(handleRequest(event.request))
})

const html = `
  <html><head></head><body>
  <input type="url" placeholder="url" id="url" style="width: 80%; display: block;">
  <input type="submit" id="submit" value="submit"/>
  <div id="res"></div>
  <a id="a" href=""></a>
  <div>注:该工具只针对直链有效</div>
  <script>
  document.getElementById('submit').onclick=function(){
      let url  = document.getElementById('url').value;
      console.log('url: '+url);
      let a = document.getElementById('a');
      let div = document.getElementById('res');
      if(!url || !url.startsWith('http')){
          div.textContent="链接不合法: "+url;
          a.style="display:none";
      }else{
          div.textContent="";
          let res = (new URL(window.location.href)).origin+'?url='+encodeURIComponent(url);
          a.textContent=res;
          a.href=res;
          a.style="";
      }
  }
  </script>
  </body></html>`;

/**
 * Respond to the request
 * @param {Request} request
 */
async function handleRequest(request) {
    let url = (new URL(request.url)).searchParams.get('url');
    if (!url) {
        return new Response(html, { status: 200, headers: { 'Content-Type': 'text/html; charset=utf-8' } });
    }
    let r = request.headers.get('Range');
    console.log(r);
    return await fetch(url, {
        headers: {
            range: r || 'bytes=0-'
        }
    });
}

其他说明

  • ui 比较简陋,可自己修改解决。
  • 不支持重定向,如需要自己添加。
  • 使用本工具仅供学习交流使用。

 

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具