Nextcloud

NextCloud

O NextCloud, uma solução de armazenamento em nuvem de código aberto, suporta o uso de armazenamento de objeto compatível com S3, não apenas como armazenamento externo, mas também como o armazenamento primário (interno) para sua implantação do NextCloud. Primeiro, por que é “compatível com S3” em vez de S3? A API Amazon S3 (Serviço de Armazenamento Simples) tornou-se o padrão de fato para criar, ler, atualizar e excluir operações (CRUD) para armazenamento de objetos. 

Aplicativos de código aberto, como o MinIO, podem ser usados ​​opcionalmente como um gateway de API para converter chamadas de API compatíveis com S3 do NextCloud em chamadas de API que serviços não S3.

Muitos administradores da edição comunitária do NextCloud motam o S3 em uma pasta NextCloud usando o aplicativo Armazenamento Externo. Comparado ao uso do S3 como armazenamento primário, essa abordagem apresenta desvantagens consideráveis.

Índice

Pré-requisitos



Info

Antes de começar é necessário que você tenha acesso aos parâmetros de uso da API. 

Esse manual mostra como acessá-los: API Big File


Info

O Big File é recomendado como serviço de repositório de arquivos, caso deseja utilizar o Big File como um servidor de arquivos o mesmo não terá um bom desempenho pois o download e upload são um pouco mais lentos do que um servidor de arquivos.

Etapa 1: S3 como armazenamento primário no NextCloud (escalável, solução corporativa)


  1. Só pode ser configurado durante o processo inicial de instalação do NextCloud, portanto, se você já possui uma instância do NextCloud, precisará criar uma nova instância.
  2. Crie um novo bucket no BigFile, certifique-se de não criar nenhum arquivo ou pasta no bucket por meio da interface S3, pois os dados serão completamente gerenciados pelo NextCloud.
  3. Antes de instalar o NextCloud pela primeira vez, navegue até a pasta config no diretório do aplicativo NextCloud (por exemplo, se o diretório do NextCloud estiver /var/www/nextcloud/, seria /var/www/nextcloud/config/). Em seguida, crie um arquivo chamado storage.config.php.

    <?php
    $CONFIG = [
    	'objectstore' => [
    		'class' => 'OC\\Files\\ObjectStore\\S3',
    		'arguments' => [
    			'bucket' => 'nextcloud',
    			'autocreate' => true,
    			'key' => 'xxxxxxxxxxxxxxxxxxxxx12fbb30c',
    			'secret' => 'xxxxxxxxxxxxxxxxxxxe4d10e1b5e7',
    			'hostname' => 'bigfile.brascloud.com.br',
    			'port' => 443,
    			'use_ssl' => true,
    			'region' => 'BR',
    			'use_path_style'=>true
    		],
    	],
    ];
  4. Depois de concluir a instalação do NextCloud por meio do assistente da Web, o esqueleto do diretório inicial da conta do usuário admin será preenchido no BigFile. A partir deste momento, os dados enviados por qualquer usuário do NextCloud (para qualquer pasta) serão automaticamente armazenados no bucket e no terminal S3 especificados no arquivo de configuração.
  5. Observe que, ao usar o armazenamento compatível com S3 como back-end principal do NextCloud, os arquivos são armazenados separadamente dos metadados (nomes de arquivos e pastas), o que significa que você não poderá navegar ou interagir com os dados pelo S3 diretamente (fora do NextCloud).
  6. Ao usar um armazenamento de objetos como armazenamento primário, o bloqueio de arquivo transacional deve ser desativado adicionando esta linha  abaixo no config.php);

    'filelocking.enabled' => false,

Etapa 2: Armazenamento externo 


  1. O suporte ao armazenamento externo é fornecido como um aplicativo padrão com o NextCloud, ele simplesmente precisa ser ativado por um usuário administrador, navegando até Aplicativos no menu suspenso. Depois de habilitado em Configurações, você terá a opção de montar Armazenamentos externos em Administração .
  2. Se "/" for escolhido como o nome da pasta , qualquer usuário do NextCloud que tenha acesso ao armazenamento externo fará o upload para o back-end compatível com S3 por padrão. Se esse não for o comportamento desejado, o bucket deve ser montado com um nome de pasta específico para que os usuários não precisem acessar a montagem na área External Storages do painel do NextCloud.
  3. Para que seja feita a conexão da Nextcloud com o BigFile com o usuário Admin clique em Configurações > Administração >Armazenamentos externos.
  4. Selecione Armazenamento externo > Amazon S3 e insira os dados como o exemplo abaixo.
  5. Visualise a nova pasta no painel do usuário.
  6. Os nomes de arquivos e diretórios são visíveis no painel do BigFile.


Info

  1. Embora você veja uma mensagem de aviso na seção Administração > Visão geral do painel NextCloud, é seguro ignorar essa mensagem - pois a API do serviço de armazenamento de objetos deve lidar com a situação normalmente .
  2. É necessário que você proteja o banco de dados MySQL ou Postgres do NextCloud com cautela, pois os metadados armazenados lá são necessários para reconstruir a estrutura de arquivos e pastas dos dados que qualquer usuário armazena no NextCloud. Considere configurar a replicação do banco de dados para garantir que você sempre tenha uma cópia de trabalho do banco de dados NextCloud - caso seu servidor de banco de dados primário falhe por qualquer motivo.


Exemplo de como implantar o Container com SSL/HTTPs https://github.com/ReinerNippes/nextcloud_on_docker

Próximos passos: