getToken($server, $userId, $userSecret); echo 'get token successful.'; echo PHP_EOL; if (is_dir($sqlfiles)) { if (substr($sqlfiles, -strlen(DIRECTORY_SEPARATOR)) === DIRECTORY_SEPARATOR) { $sqlfiles = rtrim($sqlfiles, DIRECTORY_SEPARATOR); } $zip = new \ZipArchive(); $sqlfileDir = $sqlfiles . '.zip'; if (file_exists($sqlfileDir)) { if (PATH_SEPARATOR == ':') { unlink($sqlfileDir); } else { $url = iconv('utf-8', 'gbk', $sqlfileDir); unlink($url); } } $open = $zip->open($sqlfileDir, \ZipArchive::CREATE); if ($open === true) { $this->toZip($sqlfiles, $zip); $zip->close(); } $sqlfiles = $sqlfileDir; } echo 'start submit job.'; echo PHP_EOL; $result = $obj->submitJob($server, $userId, $token, $sqlfiles, time(), $dbvendor); if ($result['code'] == 200) { echo 'submit job successful.'; echo PHP_EOL; $jobId = $result['data']['jobId']; while (true) { $result = $obj->getStatus($server, $userId, $token, $jobId); if ($result['code'] == 200) { $status = $result['data']['status']; if ($status == 'partial_success' || $status == 'success') { break; } if ($status == 'fail') { echo 'job execution failed.'; exit(1); } } } echo $status; echo 'start get result from sqlflow.'; echo PHP_EOL; $filePath = $obj->getResult($server, $userId, $token, $jobId, $download); echo 'get result from sqlflow successful. file path is : ' . $filePath; } else { echo 'submit job failed.'; } echo PHP_EOL; echo '===================================== end ====================================='; } function toZip($path, $zip) { $handler = opendir($path); while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") { if (is_dir($path . DIRECTORY_SEPARATOR . $filename)) { $obj = new Grabit(); $obj->toZip($path . DIRECTORY_SEPARATOR . $filename, $zip); } else { $zip->addFile($path . DIRECTORY_SEPARATOR . $filename); $zip->renameName($path . DIRECTORY_SEPARATOR . $filename, $filename); } } } @closedir($path); } } $obj = new Grabit(); $obj->run($argv);