0成本用Cloudflare配合BackBlaze搭建零成本自建图床
Cloudflare这家大善人就不用多介绍了,BackBlaze在云存储领域属于S3平替,10G免费,兼容S3 API,最关键的是从CF下载不占流量[注册地址](https://forum.naixi.net/goto.php?url=https%3A%2F%2Fwww.backblaze.com%2Fcloud-storage),无aff,信箱即可注册,无需付款
BackBlaze免费账户默认存储是私有的,公开访问需要钞票。cloudflare大善人就派上用场了,我们通过worker来让它变成公开访问。
##### API
1. 注册BackBlaze之后,创建一个Bucket。所有图片都会保存在这个bucket里面
!(https://3.14159.fyi/x6BmZkmTBC-Cwbb7eteNj44wB3w1ZsGakZ_miWNlLv0/image.png)
2. 随便上传一个文件,点开文件之后找到S3 URL记下来。
!(https://3.14159.fyi/mUU9fo9znMkioYRb9WNqnUYDZbOGzhvnx8XTmdRbRhE/image.png)
3. 创建一个Application Keys,访问权限可读写。保存好Key ID和Access Key
!(https://3.14159.fyi/joy1cNO-RzvOYiUtU2UhdS7iNrS9kyGxjSv9wJHVkrQ/image.png)
4. 在cloudflare里创建一个worker,Start from a template点右边的Hello world,然后deploy
!(https://3.14159.fyi/8NJLgBz40_pShK4VO8kNqNPOckLIVJ9F5EuY_IW0VH4/image.png)
!(https://3.14159.fyi/_59hWxlHlRdpGszlrq6yxLh31iddGYCz4ccHcRagVp0/image.png)
5. 在下个页面点Edit code,把[代码](https://forum.naixi.net/goto.php?url=https%3A%2F%2F3.14159.fyi%2FyRPTjwrGNB2kdlHkGFaokB9Vj5bFWabKV-RWupSxFHI%2Fworker.js)贴进去,点选Deploy
!(https://3.14159.fyi/X3z6ER6zi1JdYJfaoEL4EKnE6frNnvaZMj1lYXU1sPw/image.png)
!(https://3.14159.fyi/TL9hngwCLTc1HYc4rXLmDb0LT5GNB0XGcqbVF_ZLiEA/image.png)
6. 回到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`
!(https://3.14159.fyi/Ps2q68vlC4iiJJ8ab6zriX-fQHLuwL4mBTrivjmmTHw/image.png)
7. 设置你的域名的worker route,配置`myhost.xyz/*`使用worker,图床API就搞定了
!(https://3.14159.fyi/bDWXlHYlB5_X0WD53S5u7e71ja11L4-W_HLphA30FfI/image.png)
##### 上传页面
下载[压缩包](https://forum.naixi.net/goto.php?url=https%3A%2F%2F3.14159.fyi%2FOeaoFL4WHThlsIeTgzoppcAlv0vGM90jmknZAWD6a_o%2Ffile.zip),解压后把里面的文件上传到bucket里就好
你可以通过 (https://forum.naixi.net/goto.php?url=https%3A%2F%2Fmyhost.xyz%2F_3uWr_VmKwkCzVPgWBzed6xE3WDWZdrvGNLo6Xv9bpk%2Findex.html) 访问上传页面(把myhost换成你的域名)
!(https://3.14159.fyi/NhrU3ktjkt734WB5rKOuV6O4fPihUrX8tORxThZSVpo/image.png)
当你有了初始的上传页面之后,就可以上传新的上传页面了(详见FAQ)
##### 域名设置
重要‼️在你的域名设置里面,A record或者cname可以随便设,但反向代理(小黄云)一定要打开
!(https://3.14159.fyi/qFuuloKh-Iu1AQFDenuLGtB7tvef-TPc9BV5MHRQfvU/image.png)
##### FAQ
**Q: 上传链接里的`_3uWr_VmKwkCzVPgWBzed6xE3WDWZdrvGNLo6Xv9bpk`太长了我记不住怎么办?**
**A:** 你可以把链接放收藏夹里。
或者可以配置一个page rule来重写
!(https://3.14159.fyi/eesQ5LPoc00iPn3eZx-5snzGrO5isqdjeihDSGYUOLI/image.png)
**Q: 怎么上传成webp?**
**A:** 你可以把图片先转换成webp再上传。
**Q: 图床能不能设置成只有自己可以上传?**
**A:** 人还是要有点共享精神的。虽然但是,本系统支持通过混淆来实现安全,方法就是套娃。
当你有了最初始的上传页面,首先在上传页面源码(压缩包里的_3uWr_VmKwkCzVPgWBzed6xE3WDWZdrvGNLo6Xv9bpk)中找到`url.pathname = 'upload';`, 把`upload`改成你的小秘密,比如`upload123456`,再把文件名改成index.html,通过上传页面重新上传,你就有了新的上传链接了。
接下来去cf worker里面把*UPLOAD_URL*改成小秘密,比如`https://myhost.xyz/upload123456`
最后去backblaze把原始页面删掉,你就有了一个看起来很安全的系统了。
免费的东西,喜欢就回复一下给我家电金币吧! 好教程,绑定! 你是转载号?
页:
[1]