type
date
status
slug
summary
tags
category
password
icon
如题, 搞了个随机图片api
预览(由于vercel/notion的缓存, 得点开才能展示预览):
Cloudinary-photo
Aierlanta • Updated Jul 22, 2025
首页:
起因是多台电脑的vscode上想要同步随机背景图有点麻烦, 索性干脆用随机图片来弄
但是现成的随机图片几乎是和图源绑定的, 二开的成本和新开的成本差不多, 那还不如自己定制一个
最开始调研了一下, 打算用 cloudinary 来做图床api, tidb 做sql api, 部署的仅为控制面板
结果等我开发完了以后, 已经部署上线了, cloudinary给我发了封邮件, 说我图像中存在违规图片
这才意识到cloudinary是有审查的, 多方调研的过程中都没有提及这点, 所以我也就没意识到有这个问题
但如果没有r18, 这个东西注定是不完美的, 所以我只能再集成一个没有审查的图床
最开始是想集成 notion 的数据库, 但是查资料的过程中发现有人提到notion会直接删数据, 禁分享,所以放弃了notion
然后看到了shutterfly, 这个东西也是无限存储, 而且没有审查, 但是调研的时候提到手动创建外链很容易, 但是机器创建外链很难, 于是也放弃了这个
最后决定使用tgstate, 部署快, 无审查, 理论上无限存储, 于是在现有的cloudinary的基础上增加了tgstate的选项, 可以自由选择图床提供商
并且考虑到有的时候不支持重定向 ,所以api有两种响应方式 ,一种是跳转到源, 另一种是从源直接获取图片的流式响应
区别就是前者会在浏览器导航栏跳转url, 后者url不变
提供了api的参数管理和分组控制, 可以对参数和分组访问权限进行限制
提供了数据库备份, 因为我开发的时候, 测试数据库就炸了一次, 虽然从cloudinary反向还原了一下, 但是也因此意识到了数据库备份的重要性
没有icon, 因为用的更多的是api本身, icon并不重要
控制台好像有很多的错误, 但是也都没管, 能跑起来就懒得动了
两天迭代了5个版本, 还是挺有意思的
最后我还是放下了对全透明面板的执念
- 作者:Alice
- 链接:blog.aierlanta.net/article/random-image-api
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。