make object prefix configurable

This commit is contained in:
Jörn Friedrich Dreyer 2016-10-27 14:15:59 +02:00 committed by Morris Jobke
parent cebb689925
commit 4a9361905d
No known key found for this signature in database
GPG Key ID: 9CE5ED29E7FCD38A
3 changed files with 13 additions and 5 deletions

View File

@ -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'
),
),
],
],
/**

View File

@ -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;
}

View File

@ -85,6 +85,7 @@ cat > $thisFolder/swift.config.php <<DELIM
'username' => '$user',
'password' => '$pass',
'container' => 'owncloud-autotest$EXECUTOR_NUMBER',
'objectPrefix' => 'autotest$EXECUTOR_NUMBER:oid:urn:',
'autocreate' => true,
'region' => '$region',
'url' => 'http://$host:$port/v2.0',