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 は使えなかった。
いけたと思ったが、これでもまだ不完全らしく、十分に動いてくれない……