请问如何高效率下载 API 中的 2000 万 张图片?一张一张下载要下载 2-3月以上!
public function handle()
{
///API中有大约 2000万张图片
/// 需要下载到服务里面
$url = 'https://www.x.com';
//API数据结构
[
'total'=>200000000000000,
'img'=>[
'1'=>'https://www.x.com/1.png',
'2'=>'https://www.x.com/2.png',
'3'=>'https://www.x.com/3.png'
]
];
//获取的全部循环次数以及图片地址
$response = Http::get($url);
for ($i=0;$i<$response->json()['total'];$i++){
//请求图片真是地址返回对象结果
$img= Http::get($response->json()['img'][$i]);
//进行图片下载并且返回图片保存的随机名字
$imagesName[$i] = Storage::disk('public')->put('images',$img);
//保存到数据库
Pic::create($imagesName[$i]);
}
如果只是按照以上的写法一张一张下载保存,我粗略的计算下需要下载2-3月差不多能下载完成;服务器16核,24G内存!请问下如何能更快的下载完成?
如果启用多次每次都是从第一张开始循环,也是没有用的!
php artisan down:img
希望大家给我指条明路 -如果方便的话可以附上代码 在此先谢谢了!
推荐文章: