使用Cloudflare的Wokers实现图片代理

听到边缘计算,serverless 感觉是不是离自己很遥远。但实际上这个已经是很成熟的技术了,在多个云厂商都提供了相关的方案。今天来简单的玩一下 CloudFlare 的workers,实现edge+serverless。

这里使用了cf 的workers来实现一个简单的图片代理。示例代码如下,

内容很简单,对参数中的URL进行一次fetch操作,并且返回实际代理到的图片内容。这样就可以用来对一些图片进行加速,或者去访问一些访问有问题的内容。

export default {
  async fetch(request) {
    const url = new URL(request.url)
    const r = url.searchParams.get('url')
    if(r === null) {
      return new Response("Usage: https://host/?url=...", { status: 404 })
    }
    console.log('img url:   ', r)
    return fetch(r).catch( 
      (err) => new Response(err.stack, { status: 500 })
    )
  },
}

POC: Google by proxy

google by proxy

Cloudflare 在Worker里面还推出了 D1,简单来说是Sqlite数据库。这是一个很大的进步,边缘也可实现简单的有状态的逻辑。想像空间就很大了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注