diff options
Diffstat (limited to 'apps/files_external')
-rw-r--r-- | apps/files_external/l10n/es_AR.php | 6 | ||||
-rw-r--r-- | apps/files_external/l10n/ru_RU.php | 4 | ||||
-rw-r--r-- | apps/files_external/lib/smb.php | 2 | ||||
-rw-r--r-- | apps/files_external/lib/swift.php | 38 | ||||
-rw-r--r-- | apps/files_external/lib/webdav.php | 3 | ||||
-rw-r--r-- | apps/files_external/tests/amazons3.php | 63 | ||||
-rw-r--r-- | apps/files_external/tests/config.php | 2 | ||||
-rw-r--r-- | apps/files_external/tests/dropbox.php | 25 | ||||
-rw-r--r-- | apps/files_external/tests/ftp.php | 25 | ||||
-rw-r--r-- | apps/files_external/tests/google.php | 62 | ||||
-rw-r--r-- | apps/files_external/tests/smb.php | 26 | ||||
-rw-r--r-- | apps/files_external/tests/swift.php | 28 | ||||
-rw-r--r-- | apps/files_external/tests/webdav.php | 26 |
13 files changed, 165 insertions, 145 deletions
diff --git a/apps/files_external/l10n/es_AR.php b/apps/files_external/l10n/es_AR.php index 80d5729af42..055fbe782e7 100644 --- a/apps/files_external/l10n/es_AR.php +++ b/apps/files_external/l10n/es_AR.php @@ -1,4 +1,10 @@ <?php $TRANSLATIONS = array( +"Access granted" => "Acceso permitido", +"Error configuring Dropbox storage" => "Error al configurar el almacenamiento de Dropbox", +"Grant access" => "Permitir acceso", +"Fill out all required fields" => "Rellenar todos los campos requeridos", +"Please provide a valid Dropbox app key and secret." => "Por favor, proporcioná un secreto y una contraseña válida para la aplicación Dropbox.", +"Error configuring Google Drive storage" => "Error al configurar el almacenamiento de Google Drive", "External Storage" => "Almacenamiento externo", "Mount point" => "Punto de montaje", "Backend" => "Motor", diff --git a/apps/files_external/l10n/ru_RU.php b/apps/files_external/l10n/ru_RU.php index 69cf7544dd9..4bd2e2e964f 100644 --- a/apps/files_external/l10n/ru_RU.php +++ b/apps/files_external/l10n/ru_RU.php @@ -1,4 +1,8 @@ <?php $TRANSLATIONS = array( +"Access granted" => "Доступ разрешен", +"Error configuring Dropbox storage" => "Ошибка при конфигурировании хранилища Dropbox", +"Grant access" => "Предоставить доступ", +"Fill out all required fields" => "Заполните все требуемые поля", "External Storage" => "Внешние системы хранения данных", "Mount point" => "Точка монтирования", "Backend" => "Бэкэнд", diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php index d4882ed0249..8fcdd1f722f 100644 --- a/apps/files_external/lib/smb.php +++ b/apps/files_external/lib/smb.php @@ -61,7 +61,7 @@ class SMB extends \OC\Files\Storage\StreamWrapper{ } public function filetype($path) { - return (bool)@$this->opendir($path);//using opendir causes the same amount of requests and caches the content of the folder in one go + return (bool)@$this->opendir($path) ? 'dir' : 'file';//using opendir causes the same amount of requests and caches the content of the folder in one go } /** diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php index c67cf59df6b..8d402b25212 100644 --- a/apps/files_external/lib/swift.php +++ b/apps/files_external/lib/swift.php @@ -41,7 +41,7 @@ class SWIFT extends \OC\Files\Storage\Common{ * @return string */ private function getContainerName($path) { - $path=trim($this->root.$path,'/'); + $path=trim(trim($this->root,'/')."/".$path,'/.'); return str_replace('/','\\',$path); } @@ -72,11 +72,11 @@ class SWIFT extends \OC\Files\Storage\Common{ * @return CF_Container */ private function createContainer($path) { - if($path=='' or $path=='/') { + if($path=='' or $path=='/' or $path=='.') { return $this->conn->create_container($this->getContainerName($path)); } $parent=dirname($path); - if($parent=='' or $parent=='/') { + if($parent=='' or $parent=='/' or $parent=='.') { $parentContainer=$this->rootContainer; }else{ if(!$this->containerExists($parent)) { @@ -102,6 +102,9 @@ class SWIFT extends \OC\Files\Storage\Common{ if(is_null($container)) { return null; }else{ + if ($path=="/" or $path=='') { + return null; + } try{ $obj=$container->get_object(basename($path)); $this->objects[$path]=$obj; @@ -137,7 +140,7 @@ class SWIFT extends \OC\Files\Storage\Common{ private function createObject($path) { $container=$this->getContainer(dirname($path)); if(!is_null($container)) { - $container=$this->createContainer($path); + $container=$this->createContainer(dirname($path)); } return $container->create_object(basename($path)); } @@ -279,7 +282,7 @@ class SWIFT extends \OC\Files\Storage\Common{ $this->conn = new \CF_Connection($this->auth); - if(!$this->containerExists($this->root)) { + if(!$this->containerExists('/')) { $this->rootContainer=$this->createContainer('/'); }else{ $this->rootContainer=$this->getContainer('/'); @@ -393,6 +396,9 @@ class SWIFT extends \OC\Files\Storage\Common{ } public function unlink($path) { + if($this->containerExists($path)) { + return $this->rmdir($path); + } if($this->objectExists($path)) { $container=$this->getContainer(dirname($path)); $container->delete_object(basename($path)); @@ -403,13 +409,13 @@ class SWIFT extends \OC\Files\Storage\Common{ } public function fopen($path,$mode) { - $obj=$this->getObject($path); - if(is_null($obj)) { - return false; - } switch($mode) { case 'r': case 'rb': + $obj=$this->getObject($path); + if (is_null($obj)) { + return false; + } $fp = fopen('php://temp', 'r+'); $obj->stream($fp); @@ -442,7 +448,7 @@ class SWIFT extends \OC\Files\Storage\Common{ } public function free_space($path) { - return 0; + return 1024*1024*1024*8; } public function touch($path,$mtime=null) { @@ -483,7 +489,17 @@ class SWIFT extends \OC\Files\Storage\Common{ } public function stat($path) { + $container=$this->getContainer($path); + if (!is_null($container)) { + return array( + 'mtime'=>-1, + 'size'=>$container->bytes_used, + 'ctime'=>-1 + ); + } + $obj=$this->getObject($path); + if(is_null($obj)) { return false; } @@ -507,7 +523,7 @@ class SWIFT extends \OC\Files\Storage\Common{ $obj->save_to_filename($tmpFile); return $tmpFile; }else{ - return false; + return OCP\Files::tmpFile(); } } diff --git a/apps/files_external/lib/webdav.php b/apps/files_external/lib/webdav.php index 70210b49ee7..7c61d06a018 100644 --- a/apps/files_external/lib/webdav.php +++ b/apps/files_external/lib/webdav.php @@ -133,6 +133,9 @@ class DAV extends \OC\Files\Storage\Common{ switch($mode) { case 'r': case 'rb': + if(!$this->file_exists($path)) { + return false; + } //straight up curl instead of sabredav here, sabredav put's the entire get result in memory $curl = curl_init(); $fp = fopen('php://temp', 'r+'); diff --git a/apps/files_external/tests/amazons3.php b/apps/files_external/tests/amazons3.php index cf372aecbd7..9fb377af3ba 100644 --- a/apps/files_external/tests/amazons3.php +++ b/apps/files_external/tests/amazons3.php @@ -1,45 +1,44 @@ <?php /** -* ownCloud -* -* @author Michael Gapczynski -* @copyright 2012 Michael Gapczynski mtgap@owncloud.com -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU AFFERO GENERAL PUBLIC LICENSE for more details. -* -* You should have received a copy of the GNU Affero General Public -* License along with this library. If not, see <http://www.gnu.org/licenses/>. -*/ + * ownCloud + * + * @author Michael Gapczynski + * @copyright 2012 Michael Gapczynski mtgap@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ namespace Test\Files\Storage; -$config = include('apps/files_external/tests/config.php'); -if (!is_array($config) or !isset($config['amazons3']) or !$config['amazons3']['run']) { - abstract class AmazonS3 extends Storage{} - return; -} else { - class AmazonS3 extends Storage { +class AmazonS3 extends Storage { - private $config; - private $id; + private $config; + private $id; - public function setUp() { - $id = uniqid(); - $this->config = include('apps/files_external/tests/config.php'); - $this->config['amazons3']['bucket'] = $id; // Make sure we have a new empty bucket to work in - $this->instance = new \OC\Files\Storage\AmazonS3($this->config['amazons3']); + public function setUp() { + $id = uniqid(); + $this->config = include('files_external/tests/config.php'); + if (!is_array($this->config) or !isset($this->config['amazons3']) or !$this->config['amazons3']['run']) { + $this->markTestSkipped('AmazonS3 backend not configured'); } + $this->config['amazons3']['bucket'] = $id; // Make sure we have a new empty bucket to work in + $this->instance = new \OC\Files\Storage\AmazonS3($this->config['amazons3']); + } - public function tearDown() { + public function tearDown() { + if ($this->instance) { $s3 = new \AmazonS3(array('key' => $this->config['amazons3']['key'], 'secret' => $this->config['amazons3']['secret'])); if ($s3->delete_all_objects($this->id)) { $s3->delete_bucket($this->id); diff --git a/apps/files_external/tests/config.php b/apps/files_external/tests/config.php index 7779f618948..ff16b1c1d8a 100644 --- a/apps/files_external/tests/config.php +++ b/apps/files_external/tests/config.php @@ -26,7 +26,7 @@ return array( 'run'=>false, 'user'=>'test:tester', 'token'=>'testing', - 'host'=>'localhost:8080/auth', + 'host'=>'localhost.local:8080/auth', 'root'=>'/', ), 'smb'=>array( diff --git a/apps/files_external/tests/dropbox.php b/apps/files_external/tests/dropbox.php index e77e0767c91..c517ef4cbb7 100644 --- a/apps/files_external/tests/dropbox.php +++ b/apps/files_external/tests/dropbox.php @@ -8,22 +8,21 @@ namespace Test\Files\Storage; -$config=include('files_external/tests/config.php'); -if(!is_array($config) or !isset($config['dropbox']) or !$config['dropbox']['run']) { - abstract class Dropbox extends Storage{} - return; -}else{ - class Dropbox extends Storage { - private $config; +class Dropbox extends Storage { + private $config; - public function setUp() { - $id=uniqid(); - $this->config=include('files_external/tests/config.php'); - $this->config['dropbox']['root'].='/'.$id;//make sure we have an new empty folder to work in - $this->instance=new \OC\Files\Storage\Dropbox($this->config['dropbox']); + public function setUp() { + $id = uniqid(); + $this->config = include('files_external/tests/config.php'); + if (!is_array($this->config) or !isset($this->config['dropbox']) or !$this->config['dropbox']['run']) { + $this->markTestSkipped('Dropbox backend not configured'); } + $this->config['dropbox']['root'] .= '/' . $id; //make sure we have an new empty folder to work in + $this->instance = new \OC\Files\Storage\Dropbox($this->config['dropbox']); + } - public function tearDown() { + public function tearDown() { + if ($this->instance) { $this->instance->unlink('/'); } } diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/ftp.php index 8a0821e25a5..3e6208e4a0d 100644 --- a/apps/files_external/tests/ftp.php +++ b/apps/files_external/tests/ftp.php @@ -8,22 +8,21 @@ namespace Test\Files\Storage; -$config=include('apps/files_external/tests/config.php'); -if(!is_array($config) or !isset($config['ftp']) or !$config['ftp']['run']) { - abstract class FTP extends Storage{} - return; -}else{ - class FTP extends Storage { - private $config; +class FTP extends Storage { + private $config; - public function setUp() { - $id=uniqid(); - $this->config=include('apps/files_external/tests/config.php'); - $this->config['ftp']['root'].='/'.$id;//make sure we have an new empty folder to work in - $this->instance=new \OC\Files\Storage\FTP($this->config['ftp']); + public function setUp() { + $id = uniqid(); + $this->config = include('files_external/tests/config.php'); + if (!is_array($this->config) or !isset($this->config['ftp']) or !$this->config['ftp']['run']) { + $this->markTestSkipped('FTP backend not configured'); } + $this->config['ftp']['root'] .= '/' . $id; //make sure we have an new empty folder to work in + $this->instance = new \OC\Files\Storage\FTP($this->config['ftp']); + } - public function tearDown() { + public function tearDown() { + if ($this->instance) { \OCP\Files::rmdirr($this->instance->constructUrl('')); } } diff --git a/apps/files_external/tests/google.php b/apps/files_external/tests/google.php index fff6461c912..87b3ae4e4cc 100644 --- a/apps/files_external/tests/google.php +++ b/apps/files_external/tests/google.php @@ -1,44 +1,42 @@ <?php /** -* ownCloud -* -* @author Michael Gapczynski -* @copyright 2012 Michael Gapczynski mtgap@owncloud.com -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU AFFERO GENERAL PUBLIC LICENSE for more details. -* -* You should have received a copy of the GNU Affero General Public -* License along with this library. If not, see <http://www.gnu.org/licenses/>. -*/ + * ownCloud + * + * @author Michael Gapczynski + * @copyright 2012 Michael Gapczynski mtgap@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ namespace Test\Files\Storage; -$config=include('apps/files_external/tests/config.php'); -if(!is_array($config) or !isset($config['google']) or !$config['google']['run']) { - abstract class Google extends Storage{} - return; -}else{ - class Google extends Storage { +class Google extends Storage { + private $config; - private $config; - - public function setUp() { - $id=uniqid(); - $this->config=include('apps/files_external/tests/config.php'); - $this->config['google']['root'].='/'.$id;//make sure we have an new empty folder to work in - $this->instance=new \OC\Files\Storage\Google($this->config['google']); + public function setUp() { + $id = uniqid(); + $this->config = include('files_external/tests/config.php'); + if (!is_array($this->config) or !isset($this->config['google']) or !$this->config['google']['run']) { + $this->markTestSkipped('Google backend not configured'); } + $this->config['google']['root'] .= '/' . $id; //make sure we have an new empty folder to work in + $this->instance = new \OC\Files\Storage\Google($this->config['google']); + } - public function tearDown() { + public function tearDown() { + if ($this->instance) { $this->instance->rmdir('/'); } } diff --git a/apps/files_external/tests/smb.php b/apps/files_external/tests/smb.php index 24728dc2370..b4ac6db1187 100644 --- a/apps/files_external/tests/smb.php +++ b/apps/files_external/tests/smb.php @@ -8,24 +8,22 @@ namespace Test\Files\Storage; -$config=include('apps/files_external/tests/config.php'); +class SMB extends Storage { + private $config; -if(!is_array($config) or !isset($config['smb']) or !$config['smb']['run']) { - abstract class SMB extends Storage{} - return; -}else{ - class SMB extends Storage { - private $config; - - public function setUp() { - $id=uniqid(); - $this->config=include('apps/files_external/tests/config.php'); - $this->config['smb']['root'].=$id;//make sure we have an new empty folder to work in - $this->instance=new \OC\Files\Storage\SMB($this->config['smb']); + public function setUp() { + $id = uniqid(); + $this->config = include('files_external/tests/config.php'); + if (!is_array($this->config) or !isset($this->config['smb']) or !$this->config['smb']['run']) { + $this->markTestSkipped('Samba backend not configured'); } + $this->config['smb']['root'] .= $id; //make sure we have an new empty folder to work in + $this->instance = new \OC\Files\Storage\SMB($this->config['smb']); + } - public function tearDown() { + public function tearDown() { + if ($this->instance) { \OCP\Files::rmdirr($this->instance->constructUrl('')); } } diff --git a/apps/files_external/tests/swift.php b/apps/files_external/tests/swift.php index 98a97f99b5b..4899d44acad 100644 --- a/apps/files_external/tests/swift.php +++ b/apps/files_external/tests/swift.php @@ -8,25 +8,23 @@ namespace Test\Files\Storage; -$config=include('apps/files_external/tests/config.php'); -if(!is_array($config) or !isset($config['swift']) or !$config['swift']['run']) { - abstract class SWIFT extends Storage{} - return; -}else{ - class SWIFT extends Storage { - private $config; +class SWIFT extends Storage { + private $config; - public function setUp() { - $id=uniqid(); - $this->config=include('apps/files_external/tests/config.php'); - $this->config['swift']['root'].='/'.$id;//make sure we have an new empty folder to work in - $this->instance=new \OC\Files\Storage\SWIFT($this->config['swift']); + public function setUp() { + $id = uniqid(); + $this->config = include('files_external/tests/config.php'); + if (!is_array($this->config) or !isset($this->config['swift']) or !$this->config['swift']['run']) { + $this->markTestSkipped('OpenStack SWIFT backend not configured'); } + $this->config['swift']['root'] .= '/' . $id; //make sure we have an new empty folder to work in + $this->instance = new \OC\Files\Storage\SWIFT($this->config['swift']); + } - public function tearDown() { - $this->instance->rmdir(''); + public function tearDown() { + if ($this->instance) { + $this->instance->rmdir(''); } - } } diff --git a/apps/files_external/tests/webdav.php b/apps/files_external/tests/webdav.php index cddd0d513ed..13e3be42948 100644 --- a/apps/files_external/tests/webdav.php +++ b/apps/files_external/tests/webdav.php @@ -8,22 +8,22 @@ namespace Test\Files\Storage; -$config=include('apps/files_external/tests/config.php'); -if(!is_array($config) or !isset($config['webdav']) or !$config['webdav']['run']) { - abstract class DAV extends Storage{} - return; -}else{ - class DAV extends Storage { - private $config; +class DAV extends Storage { - public function setUp() { - $id=uniqid(); - $this->config=include('apps/files_external/tests/config.php'); - $this->config['webdav']['root'].='/'.$id;//make sure we have an new empty folder to work in - $this->instance=new \OC\Files\Storage\DAV($this->config['webdav']); + private $config; + + public function setUp() { + $id = uniqid(); + $this->config = include('files_external/tests/config.php'); + if (!is_array($this->config) or !isset($this->config['webdav']) or !$this->config['webdav']['run']) { + $this->markTestSkipped('WebDAV backend not configured'); } + $this->config['webdav']['root'] .= '/' . $id; //make sure we have an new empty folder to work in + $this->instance = new \OC\Files\Storage\DAV($this->config['webdav']); + } - public function tearDown() { + public function tearDown() { + if ($this->instance) { $this->instance->rmdir('/'); } } |