summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2012-05-24 19:39:14 +0200
committerRobin Appelman <icewind@owncloud.com>2012-05-24 19:41:32 +0200
commita1539dace78207076edc4ea42619e9a81dd41fe2 (patch)
tree2270a1a398903e218e27da2ae685a2ad685e6e67 /apps
parentf00a50c76a76f6613ac9c9fcdef57f109e79f003 (diff)
downloadnextcloud-server-a1539dace78207076edc4ea42619e9a81dd41fe2.tar.gz
nextcloud-server-a1539dace78207076edc4ea42619e9a81dd41fe2.zip
share code between smb and ftp filestorage backends
Diffstat (limited to 'apps')
-rw-r--r--apps/files_external/appinfo/app.php1
-rw-r--r--apps/files_external/lib/ftp.php73
-rw-r--r--apps/files_external/lib/smb.php86
-rw-r--r--apps/files_external/lib/streamwrapper.php89
4 files changed, 92 insertions, 157 deletions
diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php
index 9aef05b5650..9fd87e39346 100644
--- a/apps/files_external/appinfo/app.php
+++ b/apps/files_external/appinfo/app.php
@@ -6,6 +6,7 @@
* See the COPYING-README file.
*/
+ OC::$CLASSPATH['OC_FileStorage_StreamWrapper']='apps/files_external/lib/streamwrapper.php';
OC::$CLASSPATH['OC_Filestorage_FTP']='apps/files_external/lib/ftp.php';
OC::$CLASSPATH['OC_Filestorage_DAV']='apps/files_external/lib/webdav.php';
OC::$CLASSPATH['OC_Filestorage_Google']='apps/files_external/lib/google.php';
diff --git a/apps/files_external/lib/ftp.php b/apps/files_external/lib/ftp.php
index 981eeab58bf..e9655ebf3a5 100644
--- a/apps/files_external/lib/ftp.php
+++ b/apps/files_external/lib/ftp.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-class OC_FileStorage_FTP extends OC_Filestorage_Common{
+class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{
private $password;
private $user;
private $host;
@@ -42,47 +42,6 @@ class OC_FileStorage_FTP extends OC_Filestorage_Common{
$url.='://'.$this->user.':'.$this->password.'@'.$this->host.$this->root.$path;
return $url;
}
-
- public function mkdir($path){
- return mkdir($this->constructUrl($path));
- }
-
- public function rmdir($path){
- if($this->file_exists($path)){
- $succes=rmdir($this->constructUrl($path));
- clearstatcache();
- return $succes;
- }else{
- return false;
- }
- }
-
- public function opendir($path){
- return opendir($this->constructUrl($path));
- }
-
- public function filetype($path){
- return filetype($this->constructUrl($path));
- }
-
- public function is_readable($path){
- return true;//not properly supported
- }
-
- public function is_writable($path){
- return true;//not properly supported
- }
-
- public function file_exists($path){
- return file_exists($this->constructUrl($path));
- }
-
- public function unlink($path){
- $succes=unlink($this->constructUrl($path));
- clearstatcache();
- return $succes;
- }
-
public function fopen($path,$mode){
switch($mode){
case 'r':
@@ -124,34 +83,4 @@ class OC_FileStorage_FTP extends OC_Filestorage_Common{
unlink($tmpFile);
}
}
-
- public function free_space($path){
- return 0;
- }
-
- public function touch($path,$mtime=null){
- if(is_null($mtime)){
- $fh=$this->fopen($path,'a');
- fwrite($fh,'');
- fclose($fh);
- }else{
- return false;//not supported
- }
- }
-
- public function getFile($path,$target){
- return copy($this->constructUrl($path),$target);
- }
-
- public function uploadFile($path,$target){
- return copy($path,$this->constructUrl($target));
- }
-
- public function rename($path1,$path2){
- return rename($this->constructUrl($path1),$this->constructUrl($path2));
- }
-
- public function stat($path){
- return stat($this->constructUrl($path));
- }
}
diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php
index c769d29032d..f5e6d78e776 100644
--- a/apps/files_external/lib/smb.php
+++ b/apps/files_external/lib/smb.php
@@ -8,7 +8,7 @@
require_once('smb4php/smb.php');
-class OC_FileStorage_SMB extends OC_Filestorage_Common{
+class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{
private $password;
private $user;
private $host;
@@ -33,88 +33,4 @@ class OC_FileStorage_SMB extends OC_Filestorage_Common{
return 'smb://'.$this->user.':'.$this->password.'@'.$this->host.$this->root.$path;
}
-
- public function mkdir($path){
- return mkdir($this->constructUrl($path));
- }
-
- public function rmdir($path){
- if($this->file_exists($path)){
- $succes=rmdir($this->constructUrl($path));
- clearstatcache();
- return $succes;
- }else{
- return false;
- }
- }
-
- public function opendir($path){
- return opendir($this->constructUrl($path));
- }
-
- public function filetype($path){
- return filetype($this->constructUrl($path));
- }
-
- public function is_readable($path){
- return true;//not properly supported
- }
-
- public function is_writable($path){
- return true;//not properly supported
- }
-
- public function file_exists($path){
- return file_exists($this->constructUrl($path));
- }
-
- public function unlink($path){
- $succes=unlink($this->constructUrl($path));
- clearstatcache();
- return $succes;
- }
-
- public function fopen($path,$mode){
- return fopen($this->constructUrl($path),$mode);
- }
-
- public function writeBack($tmpFile){
- if(isset(self::$tempFiles[$tmpFile])){
- $this->uploadFile($tmpFile,self::$tempFiles[$tmpFile]);
- unlink($tmpFile);
- }
- }
-
- public function free_space($path){
- return 0;
- }
-
- public function touch($path,$mtime=null){
- if(is_null($mtime)){
- $fh=$this->fopen($path,'a');
- fwrite($fh,'');
- fclose($fh);
- }else{
- return false;//not supported
- }
- }
-
- public function getFile($path,$target){
- return copy($this->constructUrl($path),$target);
- }
-
- public function uploadFile($path,$target){
- return copy($path,$this->constructUrl($target));
- }
-
- public function rename($path1,$path2){
- return rename($this->constructUrl($path1),$this->constructUrl($path2));
- }
-
- public function stat($path){
- return stat($this->constructUrl($path));
- }
-
-
-
}
diff --git a/apps/files_external/lib/streamwrapper.php b/apps/files_external/lib/streamwrapper.php
new file mode 100644
index 00000000000..7d56445361e
--- /dev/null
+++ b/apps/files_external/lib/streamwrapper.php
@@ -0,0 +1,89 @@
+<?php
+/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+
+abstract class OC_FileStorage_StreamWrapper extends OC_Filestorage_Common{
+ abstract public function constructUrl($path);
+
+ public function mkdir($path){
+ return mkdir($this->constructUrl($path));
+ }
+
+ public function rmdir($path){
+ if($this->file_exists($path)){
+ $succes=rmdir($this->constructUrl($path));
+ clearstatcache();
+ return $succes;
+ }else{
+ return false;
+ }
+ }
+
+ public function opendir($path){
+ return opendir($this->constructUrl($path));
+ }
+
+ public function filetype($path){
+ return filetype($this->constructUrl($path));
+ }
+
+ public function is_readable($path){
+ return true;//not properly supported
+ }
+
+ public function is_writable($path){
+ return true;//not properly supported
+ }
+
+ public function file_exists($path){
+ return file_exists($this->constructUrl($path));
+ }
+
+ public function unlink($path){
+ $succes=unlink($this->constructUrl($path));
+ clearstatcache();
+ return $succes;
+ }
+
+ public function fopen($path,$mode){
+ return fopen($this->constructUrl($path),$mode);
+ }
+
+ public function free_space($path){
+ return 0;
+ }
+
+ public function touch($path,$mtime=null){
+ if(is_null($mtime)){
+ $fh=$this->fopen($path,'a');
+ fwrite($fh,'');
+ fclose($fh);
+ }else{
+ return false;//not supported
+ }
+ }
+
+ public function getFile($path,$target){
+ return copy($this->constructUrl($path),$target);
+ }
+
+ public function uploadFile($path,$target){
+ return copy($path,$this->constructUrl($target));
+ }
+
+ public function rename($path1,$path2){
+ return rename($this->constructUrl($path1),$this->constructUrl($path2));
+ }
+
+ public function stat($path){
+ return stat($this->constructUrl($path));
+ }
+
+
+
+}