[Pkg-owncloud-commits] [owncloud] 05/14: Use the TempManager to handle temporary files

David Prévot taffit at moszumanska.debian.org
Wed Mar 11 15:49:32 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to annotated tag v6.0.7
in repository owncloud.

commit 3adb47094e57a81ad0af48210ea5a5e6d08b96d3
Author: Robin Appelman <icewind at owncloud.com>
Date:   Wed Oct 22 17:36:52 2014 +0200

    Use the TempManager to handle temporary files
---
 cron.php               |  3 +-
 lib/base.php           |  3 +-
 lib/private/helper.php | 91 +++-----------------------------------------------
 3 files changed, 7 insertions(+), 90 deletions(-)

diff --git a/cron.php b/cron.php
index 0d2c07b..2d911f5 100644
--- a/cron.php
+++ b/cron.php
@@ -60,8 +60,7 @@ try {
 	// Handle unexpected errors
 	register_shutdown_function('handleUnexpectedShutdown');
 
-	// Delete temp folder
-	OC_Helper::cleanTmpNoClean();
+	\OC::$server->getTempManager()->cleanOld();
 
 	// Exit if background jobs are disabled!
 	$appmode = OC_BackgroundJob::getExecutionType();
diff --git a/lib/base.php b/lib/base.php
index 5d7408e..701cb22 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -585,7 +585,8 @@ class OC {
 		self::registerLogRotate();
 
 		//make sure temporary files are cleaned up
-		register_shutdown_function(array('OC_Helper', 'cleanTmp'));
+		$tmpManager = \OC::$server->getTempManager();
+		register_shutdown_function(array($tmpManager, 'clean'));
 
 		//parse the given parameters
 		self::$REQUESTEDAPP = (isset($_GET['app']) && trim($_GET['app']) != '' && !is_null($_GET['app']) ? OC_App::cleanAppId(strip_tags($_GET['app'])) : OC_Config::getValue('defaultapp', 'files'));
diff --git a/lib/private/helper.php b/lib/private/helper.php
index cca9d29..318aaff 100644
--- a/lib/private/helper.php
+++ b/lib/private/helper.php
@@ -25,7 +25,6 @@
  * Collection of useful functions
  */
 class OC_Helper {
-	private static $tmpFiles = array();
 	private static $mimetypeIcons = array();
 	private static $mimetypeDetector;
 	private static $templateManager;
@@ -548,106 +547,24 @@ class OC_Helper {
 	 *
 	 * @param string $postfix
 	 * @return string
+	 * @deprecated Use the TempManager instead
 	 *
 	 * temporary files are automatically cleaned up after the script is finished
 	 */
 	public static function tmpFile($postfix = '') {
-		$file = get_temp_dir() . '/' . md5(time() . rand()) . $postfix;
-		$fh = fopen($file, 'w');
-		fclose($fh);
-		self::$tmpFiles[] = $file;
-		return $file;
-	}
-
-	/**
-	 * move a file to oc-noclean temp dir
-	 *
-	 * @param string $filename
-	 * @return mixed
-	 *
-	 */
-	public static function moveToNoClean($filename = '') {
-		if ($filename == '') {
-			return false;
-		}
-		$tmpDirNoClean = get_temp_dir() . '/oc-noclean/';
-		if (!file_exists($tmpDirNoClean) || !is_dir($tmpDirNoClean)) {
-			if (file_exists($tmpDirNoClean)) {
-				unlink($tmpDirNoClean);
-			}
-			mkdir($tmpDirNoClean);
-		}
-		$newname = $tmpDirNoClean . basename($filename);
-		if (rename($filename, $newname)) {
-			return $newname;
-		} else {
-			return false;
-		}
+		return \OC::$server->getTempManager()->getTemporaryFile($postfix);
 	}
 
 	/**
 	 * create a temporary folder with an unique filename
 	 *
 	 * @return string
+	 * @deprecated Use the TempManager instead
 	 *
 	 * temporary files are automatically cleaned up after the script is finished
 	 */
 	public static function tmpFolder() {
-		$path = get_temp_dir() . '/' . md5(time() . rand());
-		mkdir($path);
-		self::$tmpFiles[] = $path;
-		return $path . '/';
-	}
-
-	/**
-	 * remove all files created by self::tmpFile
-	 */
-	public static function cleanTmp() {
-		$leftoversFile = get_temp_dir() . '/oc-not-deleted';
-		if (file_exists($leftoversFile)) {
-			$leftovers = file($leftoversFile);
-			foreach ($leftovers as $file) {
-				self::rmdirr($file);
-			}
-			unlink($leftoversFile);
-		}
-
-		foreach (self::$tmpFiles as $file) {
-			if (file_exists($file)) {
-				if (!self::rmdirr($file)) {
-					file_put_contents($leftoversFile, $file . "\n", FILE_APPEND);
-				}
-			}
-		}
-	}
-
-	/**
-	 * remove all files in PHP /oc-noclean temp dir
-	 */
-	public static function cleanTmpNoClean() {
-		$tmpDirNoCleanName=get_temp_dir() . '/oc-noclean/';
-		if(file_exists($tmpDirNoCleanName) && is_dir($tmpDirNoCleanName)) {
-			$files=scandir($tmpDirNoCleanName);
-			foreach($files as $file) {
-				$fileName = $tmpDirNoCleanName . $file;
-				if (!\OC\Files\Filesystem::isIgnoredDir($file) && filemtime($fileName) + 600 < time()) {
-					unlink($fileName);
-				}
-			}
-			// if oc-noclean is empty delete it
-			$isTmpDirNoCleanEmpty = true;
-			$tmpDirNoClean = opendir($tmpDirNoCleanName);
-			if(is_resource($tmpDirNoClean)) {
-				while (false !== ($file = readdir($tmpDirNoClean))) {
-					if (!\OC\Files\Filesystem::isIgnoredDir($file)) {
-						$isTmpDirNoCleanEmpty = false;
-					}
-				}
-			}
-			if ($isTmpDirNoCleanEmpty) {
-				rmdir($tmpDirNoCleanName);
-			}
-		}
+		return \OC::$server->getTempManager()->getTemporaryFolder();
 	}
 
 	/**

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list