// src/templates/populated-worker/src/index.js
var src_default = {
async fetch(request, env) {
const { DATABASE, r2_dl} = env;
const url = new URL(request.url);
switch (url.pathname) {
case "/ping":
return new Response('pong', { status: 200 });
case "/upload": {
// --- 新增 Basic Auth 校验 ---
const auth = request.headers.get("Authorization");
if (!auth) {
return new Response("Unauthorized", {
status: 401,
headers: { "WWW-Authenticate": 'Basic realm="Upload Access"' }
});
}
// 解析 Basic Auth 字符串 (Base64 解码)
const base64 = auth.split(' ')[1];
const decoded = atob(base64);
const [user, pass] = decoded.split(':');
// 验证用户名和密码 (对应后台设置的环境变量)
if (user !== "v2ex" || pass !== "xe2v") {
return new Response("Forbidden", { status: 403 });
}
// --- 校验结束 ---
if (request.method !== "PUT") {
return new Response("Method Not Allowed", { status: 405 });
}
const fileName = url.searchParams.get("filename");
if (!fileName) {
return new Response("Missing 'filename' parameter", { status: 400 });
}
try {
await r2_dl.put(fileName, request.body, {
httpMetadata: {
contentType: fileName.endsWith(".apk")
? "application/vnd.android.package-archive"
: "application/octet-stream",
}
});
return new Response(`Successfully uploaded: ${fileName}`, { status: 200 });
} catch (e) {
return new Response(`Upload failed: ${e.message}`, { status: 500 });
}
}
case "/download": {
const fileName = url.searchParams.get("file");
if (!fileName) return new Response("Missing 'file'", { status: 400 });
const object = await r2_dl.get(fileName);
if (object === null) return new Response("Not Found", { status: 404 });
const headers = new Headers();
object.writeHttpMetadata(headers);
headers.set("etag", object.httpEtag);
headers.set("Content-Disposition", `attachment; filename="${encodeURIComponent(fileName.split('/').pop())}"`);
return new Response(object.body, { headers });
}
default:
return new Response('Not Found', { status: 404 });
}
}
};
export { src_default as default };
"www.visa.cn", // Visa 中国官网(带 www ) - CloudFlare CDN
"www.visa.com", // Visa 国际官网
"visa.com", // Visa 国际
"www.shopify.com", // Shopify 官方
"store.ubi.com", // Ubisoft 商店
"mfa.gov.ua", // 乌克兰外交部
使用上面的 ip 随机来请求,上面的 ip 比较稳定.
val 运营商 = if(手机是 wifi 或者 vpn) {
//那么直接使用 ipinfo 之类来获取运营商
}else{
// 安卓直接 simOperator 来获取运营商信息
}
// 使用
val ipStr = if(result == "中国联通"){
httpRequest("https://cf.090227.xyz/cu")
}else if(result == "中国移动"){
httpRequest("https://cf.090227.xyz/cmccd")
}else if(result == "中国电信"){
httpRequest("https://cf.090227.xyz/ct")
}else{
// 不知道是杀,听天由命了。 选择最快的的 ip
httpRequest("https://cf.090227.xyz/ip.164746.xyz")
}
拿到 ip 后再访问下载站。
当然你也可以使用 github release 的方式找几个 proxy 来下载请求,
我推荐的是最开始优选 github 代理加速, 代理炸了,再使用 cf 优选 ip.
然后上面的一些地址最好使用 dns txt 保持动态更新。 美滋滋。 上面优选 ip 最好先并发请求一下,能够 ping 测速一下在做真实请求。 这样一来每个月 50g 的流量,一年能省不少的钱。谁叫国内没法上架呢。