学做网站论坛视频下载,jsp网站开发广告位,好网站具备条件,网站cms系统源码之前博客一直用的公共的随机图API#xff0c;虽然图片的质量都挺不错的#xff0c;但是稳定性都比较一般#xff0c;遂打算使用之前部署的兰空图床#xff0c;自己弄一个随机图 本文章服务器操作基于雨云——新一代云服务提供商的云服务器进行操作#xff0c;有兴趣的话可… 之前博客一直用的公共的随机图API虽然图片的质量都挺不错的但是稳定性都比较一般遂打算使用之前部署的兰空图床自己弄一个随机图 本文章服务器操作基于雨云——新一代云服务提供商的云服务器进行操作有兴趣的话可以去官网看看 兰空图床 兰空图床的部署过程可参考我之前的文章搭建兰空图床并配合 PicGo 实现批量上传 | 火柴人儿的小站 获取Token
获取token的接口地址在兰空图床的接口文档中有写 使用api工具ApiFox或者Postman都行请求一次接口Headers和Body按照我这个填就行邮箱和密码要改成自己的 创建项目 创建项目 初始化一个新的Node.js项目 npm init -y安装Express和Axios npm install express axios编写后端代码 创建一个名为app.js的文件并编写以下代码 const express require(express);
const axios require(axios);
const app express();
const port 3000; //自定义一个未使用的端口app.get(/, async (req, res) {try {const response await axios.get(http://xxxxxx/api/v1/images?album_idxx,{ //兰空图床接口用于获取指定相册下的所有图片headers: {Authorization: Bearer xxxxx, // 兰空图床的TokenAccept: application/json, // 兰开图床公共请求参数}});const images response.data.data.data;const randomIndex Math.floor(Math.random() * images.length);const randomImage images[randomIndex];res.redirect(randomImage.links.url); //重定向到图片地址} catch (error) {res.status(500).send(Internal Server Error);}
});app.listen(port, () {console.log(Server is running at http://localhost:${port}/);
}); 运行 node app.js测试 浏览器访问地址localhost:3000就可以访问随机图片了本地测试无误之后就需要放到服务器上运行了
部署 可能因为我是用docker部署的宝塔所以有些问题没法用宝塔部署node项目所以改为手动部署 新建并进入目录randomImgs mkdir /home/randomImgs
cd /home/randomImgs将项目文件导入到randomImgs中使用SSH工具导入我这里用的是WindTerm 若已经安装过node则直接执行以下命令即可未安装node的话安装此教程——如何在服务器上安装node、npm_服务器安装npm-CSDN博客即可安装记得把里面的版本号改为16.17.0或者你本地的版本号 nohup node app.js 会提示nohup: ignoring input and appending output to ‘nohup.out’这个是正常的意思就是项目日志会追加到nohup.out文件中直接回车就行 配置nginx 去DNS添加一条A记录来创建一个子域名 创建php项目使用刚刚创建的子域名 添加反向代理目标URL为http://服务器IP:3000 这里的3000为node项目中app.js设定的端口 此时就可以通过子域名获取随机图了
优化 因为涉及到token所以可以使用javascript混淆进行简单的防护 使用在线Javascript混淆加密用混淆后的内容替换app.js中的内容