Vou tentar resumir as respostas às minhas perguntas:
- A interface do usuário da Web e a variável de ambiente colidem?
- Quando os ativos devem ser carregados no bucket?
Ao adicionar este trecho ao app.yml na seção hook, ele será carregado apósafter_assets_precompile(durante a reconstrução do aplicativo).
- Como posso depurar isso? Não vejo nenhum erro nos logs.
Executando:
cd /var/discourse
sudo ./launcher enter app
sudo -E -u discourse bundle exec rake s3:upload_assets --trace
- É possível definir uma subpasta de um bucket na configuração?
Eu realmente preciso usar buckets separados para uploads e backups?
Não, você não precisa, mas geralmente é a maneira mais fácil de configurar. Essencialmente, você precisa usar dois buckets diferentes ou um prefixo para o bucket de backup. Por exemplo, as seguintes combinações funcionarão:
- Buckets diferentes
- s3_upload_bucket:
seu-bucket-de-uploads- s3_backup_bucket:
seu-bucket-de-backups
- Prefixos diferentes
- s3_upload_bucket:
seu-bucket-de-uploads/uploads- s3_backup_bucket:
seu-bucket-de-uploads/backups
- Quando isso funcionar, as imagens previamente carregadas serão transferidas para o bucket? Se eu refizer o bake, como será a URL das imagens previamente carregadas?
Ativei os uploads S3 na minha instância do Discourse (que está em funcionamento há algum tempo); o que faço com os uploads locais existentes?
Para migrar seus uploads existentes para S3, você pode executar algumas tarefas rake. Para realizá-las, você precisa de acesso SSH, permissões de root e ter entrado no aplicativo discourse (conforme Operações em Massa Administrativas). Ah, e você tem que definir algumas variáveis de ambiente em app.yml. Não é para os fracos de coração.
Depois de ter feito tudo isso, você estará pronto para as tarefas rake:
rake uploads:migrate_to_s3 rake posts:rebakeDepois que essas tarefas forem concluídas (e os uploads estiverem funcionando bem), você não precisará mais incluir os uploads em seus backups. E como bônus, você poderá Restaurar um backup da linha de comando em caso de catástrofe (apenas guarde uma cópia do app.yml em algum lugar).