首先注册BackBlaze

  • BackBlaze在云存储领域属于S3平替,免费用户可以使用10G,最关键的是从CF下载不占流量,使用信箱即可注册,无需付款。

  • BackBlaze免费账户默认存储是私有的,公开访问需要钞票。cloudflare大善人就派上用场了,我们通过worker来让它变成公开访问,CF大善人咋们就不用多介绍了,不知道的可以自己谷歌或者百度。

  • 在注册BackBlaze之后,在页面创建一个Bucket。后续所有图片都会保存在这个bucket里面(图片1)。

  • 随便上传一个图片文件,点开图片文件之后找到S3 URL这些信息记下来。后面需要用到(图片2)。

  • 在cloudflare里创建一个worker,Start from a template点右边的Hello world,然后deploy(图片3)

部署cloudflare

  • 在cloudflare里创建一个worker,Start from a template点右边的Hello world,然后deploy

  • 在下个页面点Edit code,把代码贴进去,点选Deploy

  • 回到Worker页面,在Settings -> Variables and Secrets里添加这些配置

    • DOWNLOAD_URL 图床地址,比如https://myhost.xyz
      UPLOAD_URL 图床上传API地址,比如https://myhost.xyz/upload
      S3_ACCESS_KEY_ID BackBlaze的Key ID
      S3_SECRET_ACCESS_KEY BackBlaze的Access key
      S3_BASE_URL 之前保存下来S3 URL的base URL,去除bucket部分,比如https://s3.us-west-004.backblazeb2.com
      S3_BUCKET 你创建的bucket名字
      S3_REGION 在S3 base URL里面可以找到,比如us-west-004

  • 设置你的域名的worker route,配置myhost.xyz/*使用worker,图床API就搞定了

image-ufgm.png

上传页面

下载压缩包file.zip,解压后把里面的文件上传到bucket里就好

你可以通过 https://myhost.xyz/_3uWr_VmKwkCzVPgWBzed6xE3WDWZdrvGNLo6Xv9bpk/index.html 访问上传页面(把myhost换成你的域名)

当你有了初始的上传页面之后,就可以上传新的上传页面了(详见FAQ)

域名设置

重要‼️在你的域名设置里面,A record或者cname可以随便设,但反向代理(小黄云)一定要打开

FAQ

Q: 上传链接里的_3uWr_VmKwkCzVPgWBzed6xE3WDWZdrvGNLo6Xv9bpk太长了我记不住怎么办?
A: 你可以把链接放收藏夹里。或者可以配置一个page rule来重写

Q: 怎么上传成webp?
A: 你可以把图片先转换成webp再上传。

Q: 图床能不能设置成只有自己可以上传?
A: 人还是要有点共享精神的。虽然但是,本系统支持通过混淆来实现安全,方法就是套娃。

当你有了最初始的上传页面,首先在上传页面源码(压缩包里的_3uWr_VmKwkCzVPgWBzed6xE3WDWZdrvGNLo6Xv9bpk)中找到url.pathname = 'upload';, 把upload改成你的小秘密,比如upload123456,再把文件名改成index.html,通过上传页面重新上传,你就有了新的上传链接了。

接下来去cf worker里面把UPLOAD_URL改成小秘密,比如https://myhost.xyz/upload123456

最后去backblaze把原始页面删掉,你就有了一个看起来很安全的系统了。

最后

感谢NS上大佬“云上拾荒者”的分享:https://www.nodeseek.com/post-276869-1