使用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}/部分