自己开发一个图床接口——基于 NodeJS.
前言
最近买了一堆服务器不知道要用来干什么…看到某乎上的回答,便准备搭建一个图床。但觉得这些现成的图床程序有些「花里胡哨」,于是便决定自己基于 NodeJS 开发一个图床接口自用。
为什么不用 OSS / COS?
阿里云 OSS, 腾讯云 COS 都属于对象存储。它的计费分为两部分:存储计费和流量计费。存储计费十分简单,并且都相应提供了存储包,十分划算。但是在流量计费上就有些复杂了,如果你的对象存储被人死刷流量,一夜破产都有可能。且我个人使用的阿里云 OSS 并没有频次控制功能,因此我选择购买一台服务器解决这个问题,因为它能通过一系列配置预防此类 CC 攻击。
如何实现?
我们可以将这个图床接口看作这些「简单」的动作。
客户端发送 POST 请求->反向代理(可选)->Express->反向代理(可选)->返回图床JSON数据。
而对于后端的 NodeJS,我们大概需要对传入的图片做这些处理。
- 获取文件名的 MD5 值
- 获取传入图片的后缀名
- 将图片以文件名 “图片文件名MD5 + 传入图片后缀名” 的形式进行存储
- 向客户端返回 JSON (包含 status 和图片链接)
知道了这些,我们就可以开始愉快的开发了。
开发
首先我们需要引入 express 框架,并创建一个应用。express 需要通过 npm 进行安装。
const e