基于 Cloudflare Workers 的随机图

一个私人的随机图服务。

一个样例图片

随机图的轮子其实网上有不少了,但基本都需要一台服务器,或者用别人提供的服务。

但其实托管图片获取直链还是比较简单的,所以想着用 Cloudflare Workers 在直链中随机选一个,来搭建一个私人的随机图片服务。

你需要

  • 一个 Cloudflare 账号
  • 一堆图片直链

图片直链

不少图床都提供直链服务,比如 sm.ms(免费版单文件上限 5MB,速度很快),或者 img.vim-cn.com(单文件上限 50MB,国内速度一般)。

或者,如果你对这些公共的服务不太放心的话,一个 GitHub Repo 也是不错的选择。

总之,只需要一个直链,方法很多,自己灵活选择。

部署 Workers

方法不多说,网上一大堆,下面直接贴代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {

var background_urls = [
'https://w.wallhaven.cc/full/ey/wallhaven-eymzjk.jpg',
'https://w.wallhaven.cc/full/j8/wallhaven-j8rk95.png'
]
var index = Math.floor((Math.random()*background_urls.length));
res = await fetch(background_urls[index])
return new Response(res.body, {
headers: { 'content-type': 'image/jpeg' },
})
}

background_urls 是一个保存直链的数组,将所有你想随机的图片加入进去即可。

P.S. 没有学过 Javascript,临时拼凑而成,希望有大佬可以优化地更好。


基于 Cloudflare Workers 的随机图
https://blog.butanediol.me/2020/06/02/基于-Cloudflare-Workers-的随机图/
作者
丁二 Butanediol
发布于
2020年6月2日
许可协议