Depois de mover as imagens e ativos (js) do meu site para o S3, tentei atualizar o fórum usando a interface /admin/upgrade. A atualização ocorreu normalmente, mas parece que os ativos não foram enviados para o bucket do S3, deixando meu site indisponível até que eu reconstruí o aplicativo a partir do shell.
Lá eu tenho um hook que faz isso por mim. Seria bom ter esse tipo de funcionalidade também na interface web. Não sei se isso já está disponível; se estiver, por favor, me avise.
Não, você não pode mover ativos para o S3 a partir da área de administração. Você precisará fazer isso via SSH, pois há tarefas adicionais necessárias no momento dessa migração, a menos que esteja fazendo isso em uma instalação nova.
Ah, entendi. Eu gostava da forma contínua e sem tempo de inatividade de atualizar até mudar para o S3. Existe alguma maneira de não servir JavaScript através do S3 e usar o S3 apenas para imagens?
Sim, não estou servindo JS diretamente do S3; ele é armazenado no S3 e servido por meio de CDN. O que eu quis perguntar foi: posso armazenar o JS localmente e servi-lo por meio de CDN, guardando apenas os arquivos de mídia no S3?
Você está entendendo tudo errado mais uma vez.
O Discourse JS é destinado a ser servido diretamente através do CDN, com a instalação do Discourse atuando como origem de puxamento. Não sei como você colocaria JS no S3, mas lembre-se de que o JS é regenerado a cada reconstrução. Qualquer coisa que você serviria pelo S3 provavelmente estaria desatualizada, e você estaria convidando mais problemas.
É por isso que eles adicionaram o hook after_assets_precompile para fazer o upload dos ativos atualizados no S3.
Como posso corrigir isso? Ele retorna 404 se eu tentar acessar qualquer ativo por meio do servidor local. Precisa ser via S3. Caso contrário, eu teria configurado uma regra de roteamento de borda no meu CDN para buscar as solicitações de ativos por meio do domínio local.
Infelizmente, o tópico mencionado não faz isso, mesmo sendo chamado de “usando armazenamento de objetos para uploads”. Se você configurar seu fórum de acordo com as instruções desse tópico, será necessário fazer o push dos ativos para o S3.