From 4a9361905d9013c7132d3226c921ce6d995b36e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 27 Oct 2016 14:15:59 +0200 Subject: [PATCH] make object prefix configurable --- config/config.sample.php | 10 ++++++---- lib/private/Files/ObjectStore/ObjectStoreStorage.php | 7 ++++++- tests/objectstore/start-swift-ceph.sh | 1 + 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/config/config.sample.php b/config/config.sample.php index fc52edbc77..e95e99e229 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -1005,9 +1005,9 @@ $CONFIG = array( * * One way to test is applying for a trystack account at http://trystack.org/ */ -'objectstore' => array( +'objectstore' => [ 'class' => 'OC\\Files\\ObjectStore\\Swift', - 'arguments' => array( + 'arguments' => [ // trystack will user your facebook id as the user name 'username' => 'facebook100000123456789', // in the trystack dashboard go to user -> settings -> API Password to @@ -1015,6 +1015,8 @@ $CONFIG = array( 'password' => 'Secr3tPaSSWoRdt7', // must already exist in the objectstore, name can be different 'container' => 'nextcloud', + // prefix to prepend to the fileid, default is 'oid:urn:' + 'objectPrefix' => 'oid:urn:', // create the container if it does not exist. default is false 'autocreate' => true, // required, dev-/trystack defaults to 'RegionOne' @@ -1028,8 +1030,8 @@ $CONFIG = array( 'serviceName' => 'swift', // The Interface / url Type, optional 'urlType' => 'internal' - ), -), + ], +], /** diff --git a/lib/private/Files/ObjectStore/ObjectStoreStorage.php b/lib/private/Files/ObjectStore/ObjectStoreStorage.php index 0f0229c9ca..2dcf830cc1 100644 --- a/lib/private/Files/ObjectStore/ObjectStoreStorage.php +++ b/lib/private/Files/ObjectStore/ObjectStoreStorage.php @@ -48,6 +48,8 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { */ protected $user; + private $objectPrefix = 'urn:oid:'; + public function __construct($params) { if (isset($params['objectstore']) && $params['objectstore'] instanceof IObjectStore) { $this->objectStore = $params['objectstore']; @@ -59,6 +61,9 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { } else { $this->id = 'object::store:' . $this->objectStore->getStorageId(); } + if (isset($params['objectPrefix'])) { + $this->objectPrefix = $params['objectPrefix']; + } //initialize cache with root directory in cache if (!$this->is_dir('/')) { $this->mkdir('/'); @@ -216,7 +221,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { */ protected function getURN($fileId) { if (is_numeric($fileId)) { - return 'urn:oid:' . $fileId; + return $this->objectPrefix . $fileId; } return null; } diff --git a/tests/objectstore/start-swift-ceph.sh b/tests/objectstore/start-swift-ceph.sh index bbf483c289..98c0e8b78b 100755 --- a/tests/objectstore/start-swift-ceph.sh +++ b/tests/objectstore/start-swift-ceph.sh @@ -85,6 +85,7 @@ cat > $thisFolder/swift.config.php < '$user', 'password' => '$pass', 'container' => 'owncloud-autotest$EXECUTOR_NUMBER', + 'objectPrefix' => 'autotest$EXECUTOR_NUMBER:oid:urn:', 'autocreate' => true, 'region' => '$region', 'url' => 'http://$host:$port/v2.0',