0.1.0 • Published 4 years ago
sn-randpic v0.1.0
randpic
一个简易的随机图片服务,支持获取永久链接。
demo
config
配置文件在 src 目录的 config.ts,没有在根目录(甚至懒得在 tsconfig.json 加一笔)
下文的地址均以项目根目录作为相对目录起点。
server:指定监听的信息(目前仅支持端口)port:监听端口
favicon?:就测试来看,Chrome 会默认获取 /favicon.ico 作为图标,而默认情况会随机返回图片作为图标,为了不出现这种情况,可以设置一个 favicon 的文件地址,默认以这个文件作为图标返回给浏览器,检测的条件是pathname.startsWith('/favicon')。logLevel:同 pino,但是程序当中目前只用了infoerrordebugcacheInMemory:true代表先将所有文件读入再从内存返回,false则只保存路径,返回时从硬盘读。allowDirectRequest:是否允许使用永久链接访问指定的图片,格式为https://example.com/?filePath=/encoded/path/to/the/file,这个链接在默认情况下会包含在Headers中,名为x-path。另外考虑用户可能会一时兴起想要保存图片链接,却没有打开控制台,因此设置了Set-Cookie头,会把路径保存在prev当中。dataSource:获取原始图片文件的方式,默认会递归访问项目根目录下的source目录。ExtHeaders:可以自定义额外的头信息(所谓额外,指除去了Content-Type这些不建议修改的),在这里修改Headers会覆盖Cookies和x-path。
scripts
"scripts": {
"start": "node ./dist/index.js",
"dev": "tsc && npm run start",
"compile": "tsc",
"pmstart": "pm2 start ./dist/index.js --log log.txt --name randpic"
},npm run start:执行 Typescript 编译后的文件。npm run dev:编译源文件并执行。npm run compile:仅编译不执行。npm run pmstart:如果电脑上安装了pm2,那么使用pm2来启动编译后的文件。若没有安装pm2不要用这个命令。
0.1.0
4 years ago