From 657f3bc4d19ce207a1457df0b4bc45fbd7e5d2cf Mon Sep 17 00:00:00 2001 From: "cn.yimian.xyz" Date: Mon, 12 Jul 2021 21:04:37 +0800 Subject: [PATCH] imgino_cache --- functions.php | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/functions.php b/functions.php index 6370328..fbc5dbd 100755 --- a/functions.php +++ b/functions.php @@ -352,30 +352,42 @@ function obsSign($path, $expires = 300){ function getImgsInfo($type, $isFast = false){ + - $obsClient = new ObsClient([ - 'key' => $GLOBALS['huawei_AK'], - 'secret' => $GLOBALS['huawei_SK'], - 'endpoint' => "https://obs.cn-east-2.myhuaweicloud.com", - ]); + $redis = new redis(); + $redis->connect('redis',6379); - $resp = $obsClient -> listObjects([ - 'Bucket' => 'yimian-image', - 'MaxKeys' => 10000, - 'Prefix' => $type.'/', - 'Marker' => $type.'/img' - ]); + $pifix = '__imgInfoCache/'.$type; + if($redis->exists($pifix) && strlen($redis->get($pifix)) > 10){ + $str = $redis->get($pifix); + }else{ - //ini_set("pcre.backtrack_limit" , -1); ini_set("pcre.recursion_limit" , -1); ini_set("memory_limit" , "1024M"); + $obsClient = new ObsClient([ + 'key' => $GLOBALS['huawei_AK'], + 'secret' => $GLOBALS['huawei_SK'], + 'endpoint' => "https://obs.cn-east-2.myhuaweicloud.com", + ]); - foreach($resp['Contents'] as $index => $val){ - $str .= $val['Key'].' '; - }; + $resp = $obsClient -> listObjects([ + 'Bucket' => 'yimian-image', + 'MaxKeys' => 10000, + 'Prefix' => $type.'/', + 'Marker' => $type.'/img' + ]); - $obsClient -> close(); + //ini_set("pcre.backtrack_limit" , -1); ini_set("pcre.recursion_limit" , -1); ini_set("memory_limit" , "1024M"); + + foreach($resp['Contents'] as $index => $val){ + $str .= $val['Key'].' '; + }; + $obsClient -> close(); + + + $redis->setEx($pifix, 3600, $str); + } preg_match_all('/img_(\S*?)_(\d{2,4})x(\d{2,4})_(\S*?)_(\S*?)_(\S*?).(jpe?g|png|gif|svg)\b/', $str, $arr); //echo var_dump($arr);