Nextcloud 14.0.0 で ConoHa のオブジェクトストレージを使うためのパッチと設定サンプル。 無保証。
config.php.sample
は、プライマリの記憶域をオブジェクトストレージとして使う設定のサンプルである。
単なる外部ストレージとして web UI から ConoHa のオブジェクトストレージを設定できるかは、知らないし試してもいない。
<?php | |
$CONFIG = array ( | |
// Your configs here | |
'objectstore' => | |
array ( | |
'class' => 'OC\\Files\\ObjectStore\\Swift', | |
'arguments' => | |
array ( | |
'serviceName' => 'Object Storage Service', | |
'url' => 'https://identity.tyo1.conoha.io/v2.0', | |
'region' => 'tyo1', | |
'tenantName' => 'gnct********', | |
'username' => 'gncu********', | |
'password' => '********', | |
'bucket' => 'nextcloud', | |
// `catalogName` is used by the code patched with `support-conoha-object-storage.patch`. | |
// For detail, see <https://qiita.com/yuuAn/items/35c55109d800640470e6>. | |
'catalogName' => 'Object Storage Service', | |
), | |
), |
FROM nextcloud:14.0.0-apache | |
COPY support-conoha-object-storage.patch /support-conoha-object-storage.patch | |
RUN cd /usr/src/nextcloud && patch -p1 --force </support-conoha-object-storage.patch |
diff --git a/lib/private/Files/ObjectStore/SwiftFactory.php b/lib/private/Files/ObjectStore/SwiftFactory.php | |
index 3ff534b4e647..23c2284d3a3a 100644 | |
--- a/lib/private/Files/ObjectStore/SwiftFactory.php | |
+++ b/lib/private/Files/ObjectStore/SwiftFactory.php | |
@@ -187,7 +187,9 @@ class SwiftFactory { | |
*/ | |
private function createContainer() { | |
$client = $this->getClient(); | |
- $objectStoreService = $client->objectStoreV1(); | |
+ // To use ConoHa object storage, `catalogName` should be customizable by the admin. | |
+ // See <https://qiita.com/yuuAn/items/35c55109d800640470e6> for detail. | |
+ $objectStoreService = $client->objectStoreV1($this->params); | |
$autoCreate = isset($this->params['autocreate']) && $this->params['autocreate'] === true; | |
try { |
Nextcloud 15 で試したが、 external files の web UI からでは (やはり) ConoHa の object storage は使えなかった。
いけたと思ったが、これでもまだ不完全らしく、十分に動いてくれない……