使用Cloudflare Workers
addEventListener("fetch", event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
let url = new URL(request.url)
let bucketName = "joomaen"
let b2BaseUrl = `https://f003.backblazeb2.com/file/${bucketName}`
// 拼接 B2 URL
let newUrl = b2BaseUrl + url.pathname
// 通过 fetch 代理请求到 B2
let response = await fetch(newUrl, {
headers: {
"Origin": null
}
})
// 保持 Content-Type,防止文件下载问题
let newHeaders = new Headers(response.headers)
newHeaders.set("Access-Control-Allow-Origin", "*")
return new Response(response.body, {
status: response.status,
headers: newHeaders
})
}
给Workers配置自定域名,请求
https://b2.zyg.im/pic/IMG_1950.JPG
就相当于https://f003.backblazeb2.com/file/joomaen/pic/IMG_1950.JPG
省去了*/file/{Bucket Name}/
部分