public static function actionMkzip() { $fileList = array('dir/1.png' => 'http://7u2sdg.com1.z0.glb.clouddn.com/bb39671987ff5c5cf0ec849446e6cc37_279255.png', 'dir2/dir3/dir4/2.jpg' => 'http://7u2sdg.com1.z0.glb.clouddn.com/48de418b961b383acbaae9bc935c697f_267289.jpg', '32.jpg' => 'http://7u2sdg.com1.z0.glb.clouddn.com/62043631093014eee492a0b501528486_262278.jpg', '42.jpg' => 'http://7u2sdg.com1.z0.glb.clouddn.com/d4d1e24d9b4bb414f6f55d75bda93a1a_465032.jpg', '54.jpg' => 'http://7u2sdg.com1.z0.glb.clouddn.com/d4c9aa5e087ca11c6a9fc108a8a027ff_374055.jpg', '63.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '63.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '63.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '63.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '6311111111.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '6322222222.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '6333333333.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '6344444444.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '6355555555.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '6366666666.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '6377777777.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '6388888888.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '6399999999.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '631010101010101010.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '631111111111111111.JPG' => 'http://7u2sdg.com1.z0.glb.clouddn.com/b400520dc84ce2fe6946b4f39aaebdaa_203708.JPG', '7.1212121212121212jpg' => 'http://7u2sdg.com1.z0.glb.clouddn.com/c80a4cd1ed5bf27fd81336b8e3b4a706_56429.jpg', '8.jpg' => 'http://7u2sdg.com1.z0.glb.clouddn.com/04f10ef3f61ed8dae42ae8a19cf67653_319095.jpg'); $result = W2Qiniu::getZipInfo($fileList); var_export($result); exit; }
public static function getZipInfo($fileList = array(), $saveas = '') { require_once __DIR__ . '/../qiniu/http.php'; require_once __DIR__ . '/../qiniu/auth_digest.php'; require_once __DIR__ . '/../qiniu/utils.php'; $fops = 'mkzip/2'; $extraKey = null; // var_export($fileList); foreach ($fileList as $key => $value) { if (preg_match('/^http:\\/\\//', $value)) { if (is_int($key)) { $fops .= '/url/' . Qiniu_Encode($value); } else { $fops .= '/url/' . Qiniu_Encode($value); // $fops .= '/alias/'.Qiniu_Encode($key); // var_export($key); // var_export(Qiniu_Encode($key)); $fops .= '/alias/' . Qiniu_Encode($key); } if ($extraKey == null) { $extraKey = $value; } } } if ($saveas == null) { $saveas = md5($fops) . '.zip'; } if ($saveas != null) { $fops .= '|saveas/' . Qiniu_Encode(W2Config::$Qiniu_bucket . ':' . $saveas); } $persistentKey = 'mkzip.' . $saveas . '.pfop'; $saveFileInfo = W2Qiniu::getFileInfoFromQiniu($saveas); if (is_array($saveFileInfo) && array_key_exists('fsize', $saveFileInfo)) { return $saveFileInfo; } $persistentId = W2Qiniu::getKeyContent($persistentKey); if (!is_null($persistentId)) { return W2Qiniu::getPersistentInfo($persistentId); } if (strpos($extraKey, W2Config::$Qiniu_domain) != false) { $extraKey = str_replace('http://' . W2Config::$Qiniu_domain . '/', '', $extraKey); } $notifyURL = ""; $force = 0; $encodedBucket = urlencode(W2Config::$Qiniu_bucket); $encodedKey = urlencode($extraKey); $encodedFops = urlencode($fops); $encodedNotifyURL = urlencode($notifyURL); $apiHost = "http://api.qiniu.com"; $apiPath = "/pfop/"; $requestBody = "bucket={$encodedBucket}&key={$encodedKey}&fops={$encodedFops}¬ifyURL={$encodedNotifyURL}"; if ($force !== 0) { $requestBody .= "&force=1"; } $mac = new Qiniu_Mac(W2Config::$Qiniu_accessKey, W2Config::$Qiniu_secretKey); $client = new Qiniu_MacHttpClient($mac); list($ret, $err) = Qiniu_Client_CallWithForm($client, $apiHost . $apiPath, $requestBody); if ($err !== null) { var_dump($err); } else { if (is_array($ret) && array_key_exists('persistentId', $ret)) { W2Qiniu::setKeyContent($persistentKey, $ret['persistentId']); return W2Qiniu::getPersistentInfo($ret['persistentId']); } return $ret; } }