@@ -244,14 +244,15 @@ Multibucket Object Store
244244It's possible to configure Nextcloud to distribute the data over multiple buckets
245245for scalability purposes.
246246
247- To setup multiple buckets, use :code: `'objectstore_multibucket ' ` storage backend
248- in :code: `config.php `:
247+ To setup multiple buckets, set :code: `'multibucket => true ' ` in the object store
248+ configuration in :code: `config.php `:
249249
250250::
251251
252- 'objectstore_multibucket ' => [
252+ 'objectstore ' => [
253253 'class' => 'Object\\Storage\\Backend\\Class',
254254 'arguments' => [
255+ 'multibucket' => true,
255256 // optional, defaults to 64
256257 'num_buckets' => 64,
257258 // will be postfixed by an integer in the range from 0 to (num_nuckets-1)
@@ -271,6 +272,57 @@ You can find out more information about upscaling with object storage and Nextcl
271272`Nextcloud customer portal <https://portal.nextcloud.com/article/object-store-as-primary-storage-16.html >`_.
272273
273274
275+ ---------------------------
276+ Multi-instance Object Store
277+ ---------------------------
278+
279+ It's possible to configure Nextcloud to distribute the data over multiple object store
280+ instances for further scaling and gradual migration.
281+
282+ To setup multiple buckets, set :code: `'objectstore' ` to an array of named configurations
283+ configuration in :code: `config.php ` and set the :code: `'default' ` to the name of the
284+ configuration to use for newly created users:
285+
286+ ::
287+
288+ 'objectstore' => [
289+ 'default' => 'server2',
290+ 'root' => 'server1',
291+ 'server1' => [
292+ 'class' => 'Object\\Storage\\Backend\\Class',
293+ 'arguments' => [
294+ 'hostname' => 's3-server1.example.com',
295+ 'bucket' => 's1_nextcloud',
296+ ...
297+ ],
298+ ],
299+ 'server2' => [
300+ 'class' => 'Object\\Storage\\Backend\\Class',
301+ 'arguments' => [
302+ 'multibucket' => true,
303+ 'hostname' => 's3-server2.example.com',
304+ 'bucket' => 's2_nextcloud_',
305+ ...
306+ ],
307+ ],
308+ ],
309+
310+ .. note :: Bucket names must be unique between all configured object store instances.
311+
312+ Newly created users will be mapped to the object store instance set in :code: `default `.
313+ Files that are not part of the users storage are put in the :code: `root ` instance, or
314+ in the :code: `default ` instance if no :code: `root ` instance is configured.
315+
316+ In the above example, if :code: `server2 ` is starting to run low on capacity, an admin can
317+ setup and configure a new :code: `server3 ` and change the :code: `default ` to :code: `server3 `.
318+ Than any newly created user will have their files put on :code: `server3 `.
319+
320+ .. note :: As with multibucket object store, the user-to-instance mapping is only created once,
321+ so only newly created users will be mapped to the new default instance.
322+
323+ It is possible to mix different object store backends and multibucket and non-multibucket in
324+ a multi-instance configuration.
325+
274326---------------------------
275327S3 SSE-C encryption support
276328---------------------------
0 commit comments