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,但是程序当中目前只用了info
error
debug
cacheInMemory
: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