全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1820|回复: 4

[经验] InfiniCLOUD免费1G一年

[复制链接]
发表于 2023-5-29 14:38:26 | 显示全部楼层 |阅读模式
可能由mjj们都收到InfiniCLOUD的邮件,里面有个问题,可以增加1G一年的活动,有多账号的直接永下面链接就直接领取了

https://infini-cloud.net/en/modules/bonus/code=202305_1GB/userid=MJJ_ID/

大家直接更换蓝色MJJ_ID为自己的id,链接复制到浏览器访问即可领取,无需登录!无需登录!无需登录!

这个网盘支持webdav是亮点,有注册需求的可以用我的aff,aff默认隐藏,
93P3M
发表于 2023-5-29 14:40:09 | 显示全部楼层
三天前就参加了 可惜只有1G
发表于 2023-5-29 14:43:00 | 显示全部楼层
这是什么时候学会了套路盘的套路了?
发表于 2023-5-29 18:37:36 | 显示全部楼层
借楼问个问题,让chatgpt写了一版worker代码,挂载webdav为文件列表,但好像下载时不能获取文件大小,让他尝试修了修没用,但是直接访问toi那个网站下载就能用,但是需要账号密码。有会的大佬可以解决一下:
  1. addEventListener('fetch', event => {
  2.   event.respondWith(handleRequest(event.request));
  3. });

  4. async function handleRequest(request) {
  5.   const basicAuth = 'Basic ' + btoa('用户ID:webdav密码'); // 编码用户名和密码
  6.   const authHeaders = { 'Authorization': basicAuth };
  7.   const url = new URL(request.url);
  8.   url.hostname = 'toi.teracloud.jp'; // 更新目标 URL 的主机名

  9.   // 如果请求的路径是根路径,则将其重定向到 /dav
  10.   if (url.pathname === '/') {
  11.     url.pathname = '/dav';
  12.   } else {
  13.     // 否则,将请求的路径追加到目标 URL 的路径中
  14.     url.pathname = '/dav' + url.pathname;
  15.   }

  16.   // 创建新的请求,并将 Basic Auth 头部添加到请求中
  17.   const newRequest = new Request(url.toString(), {
  18.     headers: { ...request.headers, ...authHeaders },
  19.     method: request.method,
  20.     body: request.body,
  21.     redirect: 'follow',
  22.   });

  23.    // 使用 fetch 发送带有 Basic Auth 头部的请求,并获取响应
  24.   const response = await fetch(newRequest);

  25.   // 从响应中提取文件大小等信息,并将其添加到响应头中
  26.   const responseHeaders = new Headers(response.headers);
  27.   responseHeaders.set('Access-Control-Expose-Headers', 'Content-Length'); // 允许访问 Content-Length
  28.   responseHeaders.set('Content-Length', response.headers.get('Content-Length')); // 将 Content-Length 添加到响应头中

  29.   // 处理 WebDAV 相关响应头
  30.   responseHeaders.delete('WWW-Authenticate'); // 删除原始响应中的 WWW-Authenticate 头部,以避免与 Workers 中的 Basic Auth 头部冲突

  31.   // 获取响应体内容
  32.   const responseBody = await response.text();

  33.   // 将网页元素中的 Parent Directory 超链接从 /dav/... 替换为空文本
  34.   const modifiedResponseBody = responseBody.replace(/\/dav\//g, '/');

  35.   // 创建新的响应,并将响应头和修改后的响应体传递给新响应
  36.   const newResponse = new Response(modifiedResponseBody, {
  37.     status: response.status,
  38.     statusText: response.statusText,
  39.     headers: responseHeaders,
  40.   });

  41.   return newResponse;
  42. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-11-26 09:39 , Processed in 0.062975 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表