From af7bd649f7254df94c8d9495678e5317f7907ad3 Mon Sep 17 00:00:00 2001 From: yossipapi Date: Mon, 23 Mar 2020 14:36:51 +0200 Subject: [PATCH 1/2] PLAT-10752: Dismiss chunkes that are of 0 bytes --- alpha/apps/kaltura/lib/kUploadTokenMgr.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/alpha/apps/kaltura/lib/kUploadTokenMgr.php b/alpha/apps/kaltura/lib/kUploadTokenMgr.php index d3d21f28c78..94e20eb2bc9 100644 --- a/alpha/apps/kaltura/lib/kUploadTokenMgr.php +++ b/alpha/apps/kaltura/lib/kUploadTokenMgr.php @@ -91,7 +91,7 @@ public function uploadFileToToken($fileData, $resume = false, $resumeAt = -1) try { - $this->checkIfFileIsValid($fileData); + $this->checkIfFileIsValid($fileData, $resumeAt, $this->_finalChunk); } catch(kUploadTokenException $ex) { @@ -147,7 +147,7 @@ public function deleteUploadToken() * Validate the file data * @param file $fileData */ - protected function checkIfFileIsValid($fileData) + protected function checkIfFileIsValid($fileData, $resumeAt, $finalChunk) { // check file name $fileName = isset($fileData['name']) ? $fileData['name'] : null; @@ -175,6 +175,14 @@ protected function checkIfFileIsValid($fileData) KalturaLog::log($msg . ' ' . print_r($fileData, true)); throw new kUploadTokenException($msg, kUploadTokenException::UPLOAD_TOKEN_FILE_IS_NOT_VALID); } + + $tempFileSize = kFile::fileSize($tempPath); + if($tempFileSize == 0 && !$finalChunk && $resumeAt > 0) + { + $msg = "The uploaded file has 0 bytes, file will be dismissed for token id [{$this->_uploadToken->getId()}]"; + KalturaLog::log($msg . ' ' . print_r($fileData, true)); + throw new kUploadTokenException($msg, kUploadTokenException::UPLOAD_TOKEN_FILE_IS_NOT_VALID); + } } /** From 94943c0fcb84a8000e36ad3bbede26fb0f6bd304 Mon Sep 17 00:00:00 2001 From: yossipapi Date: Mon, 23 Mar 2020 16:22:53 +0200 Subject: [PATCH 2/2] PLAT-10752: Don't run mv operations when file size is 0 bytes --- .../kaltura/lib/exceptions/kUploadTokenException.php | 2 ++ alpha/apps/kaltura/lib/kUploadTokenMgr.php | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/alpha/apps/kaltura/lib/exceptions/kUploadTokenException.php b/alpha/apps/kaltura/lib/exceptions/kUploadTokenException.php index 8096ff09ade..5ecc4b61190 100644 --- a/alpha/apps/kaltura/lib/exceptions/kUploadTokenException.php +++ b/alpha/apps/kaltura/lib/exceptions/kUploadTokenException.php @@ -26,4 +26,6 @@ class kUploadTokenException extends kCoreException const UPLOAD_TOKEN_MAX_AUTO_FINALIZE_RETRIES_REACHED = "UPLOAD_TOKEN_MAX_AUTO_FINALIZE_RETRIES_REACHED"; const UPLOAD_TOKEN_AUTO_FINALIZE_CACHE_NOT_INITIALIZED = "UPLOAD_TOKEN_AUTO_FINALIZE_CACHE_NOT_INITIALIZED"; + + const UPLOAD_TOKEN_FILE_IS_EMPTY = "UPLOAD_TOKEN_FILE_IS_EMPTY"; } \ No newline at end of file diff --git a/alpha/apps/kaltura/lib/kUploadTokenMgr.php b/alpha/apps/kaltura/lib/kUploadTokenMgr.php index 94e20eb2bc9..a33c69fa351 100644 --- a/alpha/apps/kaltura/lib/kUploadTokenMgr.php +++ b/alpha/apps/kaltura/lib/kUploadTokenMgr.php @@ -95,8 +95,15 @@ public function uploadFileToToken($fileData, $resume = false, $resumeAt = -1) } catch(kUploadTokenException $ex) { + if($ex->getCode() == kUploadTokenException::UPLOAD_TOKEN_FILE_IS_EMPTY) + { + return; + } + if(!$resume && $this->_finalChunk) + { kFlowHelper::handleUploadFailed($this->_uploadToken); + } $this->tryMoveToErrors($fileData); throw $ex; @@ -181,7 +188,8 @@ protected function checkIfFileIsValid($fileData, $resumeAt, $finalChunk) { $msg = "The uploaded file has 0 bytes, file will be dismissed for token id [{$this->_uploadToken->getId()}]"; KalturaLog::log($msg . ' ' . print_r($fileData, true)); - throw new kUploadTokenException($msg, kUploadTokenException::UPLOAD_TOKEN_FILE_IS_NOT_VALID); + kFile::doDeleteFile($tempPath); + throw new kUploadTokenException($msg, kUploadTokenException::UPLOAD_TOKEN_FILE_IS_EMPTY); } }