Depois de bater a cabeça na parede por 3 horas tentando fazer minha configuração do AWS S3 funcionar com o Discourse em uma instância do AWS Lightsail, estou com a forte convicção de que um tutorial simples e direto sobre isso seria bom. Existem TODOS os tipos de caminhos complexos para seguir com isso. Quer dizer, eu não tenho problemas em criar um bucket que possa puxar arquivos remotamente usando a URL do AWS S3 fornecida, mas assim que você introduz a CDN, o Endpoint do S3 (que a interface de usuário de configurações afirma claramente que pode ficar em branco, mas ao tentar fazer o upload exibe a mensagem interna de “Endpoint não pode ficar em branco”) e coisas básicas como qual nível de permissão você REALMENTE precisa se estiver usando uma CDN via CloudFront da Amazon.
É muita coisa. Eu vasculhei a internet e nada parecido existe, e certamente nada que eu encontrei estivesse atualizado com o Discourse hoje.
Agradeço qualquer dica.
Acho que meu principal obstáculo no momento são as permissões, pelo menos do ponto de vista do Discourse solicitando a Chave de ID e a Chave Secreta. Eu tenho um usuário no IAM para isso, mas não há NADA nas informações dos Buckets S3 que pareça associar este usuário àquele bucket, então não tenho ideia se essa é a desconexão. Honestamente, uso o LightSail e o AWS há mais de 8 anos, mas esta área do S3 é escrita em um tipo de ofuscação de estilo de UX de desenvolvedor com 50 maneiras diferentes de fazer as coisas. Nada intuitivo.
Olá Jay. Sim, eu olhei para aquele várias vezes agora. Como é de 2020, ele tem coisas como as configurações DISCOURSE_S3_REGION, mas a área de administração não tem tal configuração.
Além disso… eu não faria o rake dos meus dados antigos DEPOIS de configurar o S3 corretamente e verificar se funciona?
É esse tipo de coisa que estou falando. As configurações no Discourse fazem muitas suposições de que o usuário conhece AWS, shell e Discourse como um desenvolvedor conheceria.
Mas você mostra que não está seguindo essas instruções.
É por isso que você precisa seguir essas instruções e não fazê-lo na experiência do usuário (UX).
Essas são as instruções a serem seguidas.
E não perca a parte que você adiciona ao yml para que os ativos sejam carregados no s3.
Eu faria isso em um site de teste para não estragar o seu site principal.
Sim. Adicione as configurações do s3 ao env no yml, reconstrua, depois teste se funcionam e, em seguida, execute a tarefa rake. Elas precisam ser definidas lá, não no banco de dados. Não tenho certeza por que eles as ocultaram da UX.
Obrigado por esses links. O primeiro link que você postou tem outro link na área da AWS ( Set up file and image uploads to S3 ) de 2013, então estou imediatamente encontrando eles dizendo para colocar a política de bucket X (que parece desatualizada) quando a CDN da AWS via Cloudfront já substituiu a política pela sua própria. Mudar? Deixar? É essa a porcaria que eu quero dizer. Ugggg!
Não são realmente as configurações de “Preencher a lacuna” no app.yml ou as configurações do administrador que são o problema. É mais uma combinação de como essas configurações estão interagindo com o bucket criado ou com a CDN, etc. Então, é o lado da Amazon que precisa de algum esclarecimento. Quer dizer, eu entendo, isso não é Discourse, mas seria muito útil para os usuários do DISCOURSE conseguirem um funcionamento realmente funcional via S3. Espero que isso faça sentido.
Entendi. Faz um tempo que não configuro um bucket da AWS. Essa parte pode ser mais complicada, mas não é o que você postou como fez.
Mas isso também é bem direto, você cola as coisas e depois, se tiver erros, pode resolvê-los.
Esse é o único problema que você descreveu.
Como você configurou o bucket? Que permissões você deu ao usuário? Você gerou as chaves? Que erros você obteve (mas pensei que você disse que adicionou uma imagem a uma postagem e funcionou?)