Estou usando o S3 para armazenamento de anexos, o que permite lidar com até 160 GB.
Alterei o limite do nginx para 0 (ilimitado).
O parâmetro “upload_size” do app.yml também está definido como 0.
Nós não fazemos o upload diretamente para o S3; ele vai primeiro para o seu servidor, e o servidor o envia para o S3. Isso significa que você não deve definir um limite maior do que o espaço livre em disco.
Ok, eu gostaria de definir o limite para 10 GB, pois tenho espaço em disco suficiente. Mas como posso alterar o limite do Discourse?
Você pode sobrescrever o máximo usando um plugin personalizado. Você pode usar este como exemplo:
Obrigado, posso confirmar que o limite foi removido ao usar este plugin e as seguintes configurações:
files:
max_attachment_size_kb:
client: true
default: 1024000
max: 6144000
No entanto, tenho dois problemas:
- Ao fazer o upload de um arquivo de 2 GB, o processo avança até 100% e, em seguida, falha com um erro genérico em uma janela pop-up.
- Toda vez que tento isso, o Docker do Discourse cresce 2 GB e não libera esse espaço!! Estou quase sem espaço… como posso limpar isso?
Será mais vantajoso usar um serviço de armazenamento em nuvem adequado à sua escolha e vincular os arquivos nos tópicos do Discourse. O Discourse não foi projetado para ser uma ferramenta de armazenamento de arquivos grandes.
Estou usando armazenamento em nuvem S3. Nada deve ser armazenado no próprio Discourse.
Não é isso que quero dizer — quero dizer um serviço de armazenamento em nuvem voltado para o consumidor, como Google Drive, OneDrive, Dropbox, etc.
Independentemente de como você faça, o Discourse não foi projetado para lidar com arquivos grandes.
Independentemente de onde o arquivo for parar, o Discourse não foi projetado para ser um mecanismo de upload de arquivos pesado.
Entendo que não foi essa a intenção, mas seria um ótimo recurso para mim e melhoraria a experiência do usuário, pois eles não precisariam ir a outro serviço para fazer o upload e depois retornar ao Discourse.
Portanto, espero que não se ofendam se eu tentar fazê-lo funcionar, mesmo que essa não tenha sido a intenção do desenvolvimento original.
Uma das maravilhas do open source é que você é livre para experimentar.
Da mesma forma, se algo não é suportado, não há garantias de que alterações futuras no Discourse não tornarão totalmente inoperantes os ajustes que você está fazendo hoje no futuro.
Estou considerando permitir uploads de arquivos grandes (podem ser de 50 MB, e é possível que haja uploads em massa através da API) no meu site também. Apenas tentando entender a preocupação aqui. Se o S3 estiver configurado para lidar com uploads e armazenamento de arquivos grandes, e o fórum do Discourse fizer links para esses arquivos para exibir um link de download aos usuários, alguém pode fornecer mais detalhes sobre onde espera que o Discourse tenha problemas?
O componente de upload atual simplesmente não foi projetado para uploads grandes (apenas o upload de backups na interface de administração do administrador é).
Estamos normalizando e refatorando nosso código de upload no momento e planejamos suportar uploads diretos para o S3. Uma vez concluído isso, tecnicamente, uploads grandes para o S3 poderiam funcionar.
Obrigado pela informação, @sam. Eu não estava familiarizado anteriormente com como os uploads de arquivos são armazenados. Então, parece que, por padrão, os uploads de arquivos são armazenados no mesmo servidor que está executando o Discourse—no qual caso entendo como uploads grandes podem ser um problema. E eu entendo como você está trabalhando para suportar uploads diretos para o S3 no futuro.
E se você configurar as coisas agora para enviar uploads de arquivos para o S3, como descrito aqui?
Isso forneceria a mesma vantagem agora como o que você planeja lançar no futuro como um recurso automático e permitir que o Discourse suporte uploads (e downloads) de arquivos grandes?
Nosso sistema atual de uploads segue o caminho usuário → servidor discourse → s3.
O novo sistema que estamos implementando em algumas semanas seguirá o caminho usuário → s3.
Os sites poderão fazer uma transição suave para o novo sistema de upload, de modo que os uploads feitos no sistema antigo continuem funcionando e os do novo sistema também?
Acredito que sim, já que todos serão armazenados no S3, mas gostaria de confirmar. Obrigado.
Como os arquivos acabarão no mesmo lugar, apenas seguindo um caminho mais direto, a mudança será transparente tanto para os usuários quanto para os administradores.
Para esclarecer: espero que os usuários não notem nenhuma mudança—apenas que (talvez?) seus arquivos sejam enviados e baixados mais rapidamente, o que permitirá o envio de arquivos maiores se os administradores desejarem. Está correto?
Eles provavelmente serão carregados mais rapidamente. Os downloads devem permanecer os mesmos (já que o recurso afetará apenas os uploads).
Acredito que sim, mas cabe à equipe do Discourse fazer um comunicado oficial sobre isso.
