From 8d6c54746812d84250e34985dc9d3ed4e59b4da0 Mon Sep 17 00:00:00 2001 From: "elf@home" <360197197@qq.com> Date: Mon, 25 Nov 2019 23:31:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=88=86=E7=89=87=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Base/Service/GameSourceService.class.php | 45 ++++++++++++++++--- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/Application/Base/Service/GameSourceService.class.php b/Application/Base/Service/GameSourceService.class.php index 007c8793f..eb9ade9aa 100644 --- a/Application/Base/Service/GameSourceService.class.php +++ b/Application/Base/Service/GameSourceService.class.php @@ -322,15 +322,14 @@ class GameSourceService { ]; } - public function uploadPackage($localFilePath, $distFilePath, $isDeleteLocal = false) + public function uploadPackage($localFilePath, $distFilePath, $isDeleteLocal = false, $isChunk = false) { if (get_tool_status('oss_storage') == 1) { - $ossService = new OssService(); - $result = $ossService->upload($localFilePath, $distFilePath); - if ($isDeleteLocal && file_exists($localFilePath)) { - @unlink($localFilePath); + if ($isChunk) { + return $this->uploadPackageChunk($localFilePath, $distFilePath, $isDeleteLocal); + } else { + return $this->uploadPackageOnce($localFilePath, $distFilePath, $isDeleteLocal); } - return $result; } else { // 不上传OSS等第三方服务器 return [ @@ -342,6 +341,40 @@ class GameSourceService { ]; } } + public function uploadPackageChunk($localFilePath, $distFilePath, $isDeleteLocal = false) + { + $client = new Client([ + 'base_uri' => C('UPLOAD_SERVER_URL'), + 'timeout' => 10.0, + ]); + $response = $client->post('/upload', [ + 'verify' => false, + 'form_params' => [ + 'file' => $gameId, + 'dist' => $distFilePath, + 'is_delete_local' => 0, + ] + ]); + $result = (string)$response->getBody(); + $result = json_decode($result, true); + if (!$result) { + return [ + 'status' => false, + 'message' => '请求打包失败', + ]; + } + return $result; + } + + public function uploadPackageOnce($localFilePath, $distFilePath, $isDeleteLocal = false) + { + $ossService = new OssService(); + $result = $ossService->upload($localFilePath, $distFilePath); + if ($isDeleteLocal && file_exists($localFilePath)) { + @unlink($localFilePath); + } + return $result; + } //生成游戏渠道plist文件 public function createPlist($params)