Armazenamento em Nuvem
O Chamilo 2.0 suporta backends de armazenamento em nuvem para arquivos enviados por usuários através do Flysystem, uma biblioteca de abstração de sistema de arquivos PHP integrada ao Symfony. Isso permite que você armazene arquivos em serviços de nuvem em vez de (ou além de) o sistema de arquivos local.
Por que Usar Armazenamento em Nuvem?
Escalabilidade -- O armazenamento em nuvem cresce com sua plataforma sem a necessidade de gerenciar espaço em disco.
Implantações em múltiplos servidores -- Ao executar vários servidores web atrás de um balanceador de carga, o armazenamento em nuvem garante que todos os servidores acessem os mesmos arquivos.
Durabilidade -- Os provedores de nuvem oferecem redundância e backup integrados.
Custo -- O armazenamento de objetos é frequentemente mais barato por gigabyte do que o armazenamento em bloco conectado a servidores.
Provedores Suportados
Amazon S3
league/flysystem-aws-s3-v3
Google Cloud Storage
league/flysystem-google-cloud-storage
Azure Blob Storage
league/flysystem-azure-blob-storage
MinIO (compatível com S3)
Usa o adaptador S3 com um endpoint personalizado
Sistema de arquivos local
Padrão, não requer pacotes adicionais
Instalação
O Chamilo já vem com os seguintes provedores pré-instalados:
# Amazon S3
league/flysystem-aws-s3-v3
# Google Cloud Storage
league/flysystem-google-cloud-storage
# Azure Blob Storage
league/flysystem-azure-blob-storageConfiguração
O Chamilo divide seus arquivos em vários mounts do Flysystem — assets, assets cache, resources, resources cache, themes e plugins. Cada mount pode ser direcionado a um bucket ou contêiner diferente. A configuração de nuvem em config/packages/oneup_flysystem.yaml é selecionada por ambiente usando condições when@ e lê as variáveis que você define em .env.
Amazon S3
Azure Blob Storage
Google Cloud Storage
Configure o GCS da mesma forma que o S3, usando variáveis de ambiente específicas do GCS e um bucket por mount. Consulte o arquivo oneup_flysystem.yaml fornecido com sua versão para os nomes exatos das variáveis — eles também estão documentados em .env.
MinIO (Compatível com S3)
O MinIO funciona através do adaptador S3 com um endpoint personalizado e endereçamento no estilo de caminho — defina AWS_S3_STORAGE_* como para o S3 e adicione o endpoint do MinIO e os sinalizadores de estilo de caminho suportados pelo bundle.
O conjunto completo de nomes de variáveis está listado no arquivo
.env.distfornecido com o Chamilo. Copie apenas as linhas do provedor que você realmente usa para o seu.enve descomente-as.
Migrando Arquivos Existentes
Se você está mudando de armazenamento local para armazenamento em nuvem em uma plataforma existente, deve migrar os arquivos existentes:
Configure o novo adaptador de armazenamento conforme descrito acima.
Copie os arquivos existentes do diretório local
var/upload/para o seu bucket de armazenamento em nuvem, preservando a estrutura de diretórios.Verifique se os arquivos estão acessíveis através da plataforma após a migração.
Permissões e Acesso
Certifique-se de que seu bucket de armazenamento em nuvem não seja publicamente acessível, a menos que você explicitamente precise de URLs de arquivos públicos. O Chamilo serve arquivos através de sua própria camada de controle de acesso, então o acesso público direto ao bucket é desnecessário e representa um risco de segurança.
Para o S3, use uma política de bucket que restrinja o acesso às credenciais IAM configuradas acima.
Dicas
Teste com MinIO localmente antes de implantar em um provedor de nuvem — o MinIO é um servidor gratuito e compatível com S3 que você pode executar em sua própria máquina.
Use um bucket dedicado para o Chamilo, em vez de compartilhar um bucket com outras aplicações.
Configure políticas de ciclo de vida no seu bucket de nuvem para gerenciar custos de armazenamento (por exemplo, mover arquivos antigos para camadas de armazenamento mais baratas).
Última atualização
Isto foi útil?