基本业务设计
需求分析
- 根据不同的端返回不同类型或尺寸的已有图片:
- 图片存储:确保有一个存储系统,用于存储不同类型和尺寸的图片。可以根据存储位置、文件名或其他标识来区分不同的图片。
- 客户端参数:客户端仍然需要指定所需的图片类型和尺寸,以便API能够根据请求返回相应的已有图片。
- 文件存储与管理:
- 存储策略:继续使用存储系统来管理已有的图片,包括存储位置和管理规则。
- 存储管理:确保你的存储系统具备合适的文件管理能力,以便快速检索和返回所需的图片。
- 文件上传:如果需要用户上传新图片或更新现有图片,仍需要实现适当的文件上传和处理机制。
- 防盗刷:
- 访问控制:继续实施访问控制措施,以防止未经授权的访问。可以使用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文件名的形式。
2.引用网络文件
但是其实不推荐这种,对流量的消耗比较大,当然如果你不在意那些服务器费用当我没说。(ಥ _ ಥ)
创建php文件的流程和上文一样,然后你只需要再在php文件中写入以下内容
<?php
$img=file('img.txt');
$url=array_rand($img);
header("Location:".$img[$url]);
?>
然后你只需要再在相同目录创建img.txt并往里面写入图片的链接即可(每行一个链接,如图