搭建一个属于自己的随机图api


基本业务设计

需求分析

  1. 根据不同的端返回不同类型或尺寸的已有图片:
    • 图片存储:确保有一个存储系统,用于存储不同类型和尺寸的图片。可以根据存储位置、文件名或其他标识来区分不同的图片。
    • 客户端参数:客户端仍然需要指定所需的图片类型和尺寸,以便API能够根据请求返回相应的已有图片。
  2. 文件存储与管理:
    • 存储策略:继续使用存储系统来管理已有的图片,包括存储位置和管理规则。
    • 存储管理:确保你的存储系统具备合适的文件管理能力,以便快速检索和返回所需的图片。
    • 文件上传:如果需要用户上传新图片或更新现有图片,仍需要实现适当的文件上传和处理机制。
  3. 防盗刷:
    • 访问控制:继续实施访问控制措施,以防止未经授权的访问。可以使用API密钥、访问令牌或IP白名单来限制访问。
    • 请求限制:设置请求频率限制,以限制单个客户端的请求频率,以防止滥用。

服务器版

php 版

在使用之前请先配置php环境。

放上服务器前,先压缩 ,可以使用 JPEGmini Pro

1、引用服务器本地文件

在网站目录下创建一个php文件,一个名叫img的文件夹,并在php文件中加入以下内容。

<?php
	$img_array = glob('img/*.{gif,jpg,png,jpeg,webp,bmp}', GLOB_BRACE);
	if (count($img_array) == 0) {
	die('没找到图片文件。请先上传一些图片到 ' . dirname(FILE) . '/img/ 文件夹');
	}
	header('Content-Type: image/png');
	echo file_get_contents($img_array[array_rand($img_array)]);
?>

然后你只需要把图片文件扔进img文件夹即可,访问时就用域名+php文件名的形式。

例如:https://xxx.xxx/xxx.php

2.引用网络文件

但是其实不推荐这种,对流量的消耗比较大,当然如果你不在意那些服务器费用当我没说。(ಥ _ ಥ)

创建php文件的流程和上文一样,然后你只需要再在php文件中写入以下内容

<?php
	$img=file('img.txt');
	$url=array_rand($img);
	header("Location:".$img[$url]);
?>

然后你只需要再在相同目录创建img.txt并往里面写入图片的链接即可(每行一个链接,如图


如果本文帮助到了你,帮我点个广告可以咩(o′┏▽┓`o)


评论
  目录