Add support for rackspace swift backends
This commit is contained in:
parent
5756aba594
commit
159b603d13
|
@ -23,6 +23,7 @@ namespace OC\Files\ObjectStore;
|
||||||
use Guzzle\Http\Exception\ClientErrorResponseException;
|
use Guzzle\Http\Exception\ClientErrorResponseException;
|
||||||
use OCP\Files\ObjectStore\IObjectStore;
|
use OCP\Files\ObjectStore\IObjectStore;
|
||||||
use OpenCloud\OpenStack;
|
use OpenCloud\OpenStack;
|
||||||
|
use OpenCloud\Rackspace;
|
||||||
|
|
||||||
class Swift implements IObjectStore {
|
class Swift implements IObjectStore {
|
||||||
|
|
||||||
|
@ -37,9 +38,6 @@ class Swift implements IObjectStore {
|
||||||
private $container;
|
private $container;
|
||||||
|
|
||||||
public function __construct($params) {
|
public function __construct($params) {
|
||||||
if (!isset($params['username']) || !isset($params['password'])) {
|
|
||||||
throw new \Exception('Access Key and Secret have to be configured.');
|
|
||||||
}
|
|
||||||
if (!isset($params['container'])) {
|
if (!isset($params['container'])) {
|
||||||
$params['container'] = 'owncloud';
|
$params['container'] = 'owncloud';
|
||||||
}
|
}
|
||||||
|
@ -48,24 +46,17 @@ class Swift implements IObjectStore {
|
||||||
$params['autocreate'] = false;
|
$params['autocreate'] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$secret = array(
|
|
||||||
'username' => $params['username'],
|
|
||||||
'password' => $params['password']
|
|
||||||
);
|
|
||||||
if (isset($params['tenantName'])) {
|
|
||||||
$secret['tenantName'] = $params['tenantName'];
|
|
||||||
}
|
|
||||||
if (isset($params['tenantId'])) {
|
|
||||||
$secret['tenantId'] = $params['tenantId'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// the OpenCloud client library will default to 'cloudFiles' if $serviceName is null
|
// the OpenCloud client library will default to 'cloudFiles' if $serviceName is null
|
||||||
$serviceName = null;
|
$serviceName = null;
|
||||||
if ($params['serviceName']) {
|
if ($params['serviceName']) {
|
||||||
$serviceName = $params['serviceName'];
|
$serviceName = $params['serviceName'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$client = new OpenStack($params['url'], $secret);
|
if (isset($params['apiKey'])) {
|
||||||
|
$client = new Rackspace($params['url'], $params);
|
||||||
|
} else {
|
||||||
|
$client = new OpenStack($params['url'], $params);
|
||||||
|
}
|
||||||
|
|
||||||
$this->objectStoreService = $client->objectStoreService($serviceName, $params['region']);
|
$this->objectStoreService = $client->objectStoreService($serviceName, $params['region']);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue