Nextcloud permet de configurer des stockages d'objets comme OpenStack Swift ou Scaleway Object Storage (S3) ou toute implémentation S3 compatible (par exemple, Minio ou Ceph Object Gateway) en tant que stockage principal remplaçant le stockage de fichiers par défaut.

Par défaut, les fichiers sont stockés dans nextcloud/dataun autre répertoire configuré dans config.phpvotre instance Nextcloud. Ce répertoire de données peut encore être utilisé pour des raisons de compatibilité)

Implications

Lors de l'utilisation d'un magasin d'objets en tant que stockage principal, Nextcloud suppose un accès exclusif sur le compartiment utilisé.

Contrairement à l'utilisation d'un bucket d'objets en tant que stockage externe, lorsqu'un magasin d'objets est utilisé comme stockage principal, aucune métadonnée (noms, structures de répertoire, etc.) n'est stockée dans le magasin d'objets. Les métadonnées ne sont stockées que dans la base de données et la librairie ne contient le contenu du fichier que par identifiant unique.

En raison de cela, les magasins d'objets principaux fonctionnent généralement mieux que lorsque vous utilisez le même magasin d'objets en tant que stockage externe, mais cela restreint l'accès aux fichiers en dehors de Nextcloud.

Configuration

Les librairies d'objets primaires doivent être configurées en config.phpspécifiant le backend objectstore et toute configuration spécifique au backend.

La configuration d'un magasin d'objets principal sur une instance Nextcloud existante rendra tous les fichiers existants sur l'instance inaccessibles.

La configuration a la structure suivante:

   'objectstore'  =>  array ( 
        'class'  =>  'Object \\ Storage \\ Backend \\ Class' , 
        'arguments'  =>  array ( 
                ... 
        ), 
), 

Service de stockage simple

Le backend du service de stockage simple (S3) monte un compartiment sur un stockage d'objet Scaleway Object Storage ou une implémentation compatible (par exemple, Minio ou Ceph Object Gateway) dans le système de fichiers virtuel.

La classe à utiliser est \\OC\\Files\\ObjectStore\\S3

 'objectstore'  =>  array ( 
        'class'  =>  ' \\ OC \\ Files \\ ObjectStore \\ S3' , 
        'arguments'  =>  array ( 
                'bucket'  =>  'nextcloud' , 
                'autocreate'  =>  true , 
                'key'     =>  'EJ39ITYZEUH5BGWDRUFY' , 
                'secret'  =>  'M5MrXTRjkyMaxXPe2FRXMTfbfnKCu + 7uRTVSj' , 
                '  nomhôte ' = "  'exemple.com' , 
                'port' =>  1234 , 
                'use_ssl'  => true , 
                'region'  =>  'facultatif' , 
                //  requis  pour  certaines  implémentations non  Amazon  S3  'use_path_path_style' => true ), ),),
                
        

Service de stockage distribué

Il est possible de configurer Nextcloud pour répartir ses données sur plusieurs buckets à des fins d'évolutivité.

Editez votre config / config.php et ajoutez :

   'objectstore_multibucket' =>
        array (
                'class' => 'OC\\Files\\ObjectStore\\S3',
                'arguments' =>
                array (
                                'bucket' => 'nextcloud-',
                                'autocreate' => true,
                                'key' => 'EJTZDTYZEUH5BGWDRUFY',
                                'secret' => 'M5MrXTRjkyMaxXPe2FRXMTfTfbKEnZCu+7uRTVS',
                                'hostname' => 'openios3.io',
                                'port' => 443,
                                'use_ssl' => true,
                                'num_buckets' => 4,
                                'region' => 'us-east-1',
                                'use_path_style' => false
                ),
),

Toutes les options de configuration ne sont pas requises pour tous les serveurs S3. Le remplacement du nom d'hôte, du port et de la région de votre serveur S3 n'est requis que pour les implémentations non Amazon, qui à leur tour ne nécessitent généralement pas la définition de la région.

use_path_stylen'est généralement pas requis, mais peut être utilisé avec des serveurs non Amazon où l'infrastructure DNS ne peut pas être contrôlée. Habituellement, les demandes sont effectuées avec http: //bucket.hostname.domain/ , mais avec le style de chemin d'accès activé, les demandes sont effectuées avec http://hostname.domain/bucket .