Tentei isso, defini cors origins para https://xxxxx.s3.us-east-2.amazonaws.com
também defini DISCOURSE_ENABLE_CORS: true em /var/discourse/containers/app.yml
mas não está funcionando.
E você executou ./launcher rebuild app após fazer alterações em app.yml? Você também pode precisar fazer uma atualização forçada do navegador.
Aliás, você pode verificar a seção de arquivos das configurações de administrador para ver se você alterou configurações que estão afetando este recurso. Também não acho que este recurso possa funcionar se você estiver vinculando a um PDF hospedado em outro servidor. Acabei de testar isso no meu site e o mesmo PDF servido remotamente não mostrou a prévia.
Informe-nos se você encontrar a origem do problema!
Exemplo de markdown de post onde o remoto não funcionou, mas o carregado localmente funcionou.
remoto:
[test remote pdf](https://jsoncompare.org/LearningContainer/SampleFiles/PDF/sample-pdf-with-images.pdf)
carregado localmente:
[sample-pdf-with-images.pdf|attachment](upload://uOJLgHidEXnbqPRn2p6yP10ecQU.pdf) (3.8 MB)
como fica:
sim. mas não funcionou.
Quando você habilita o S3 no Discourse
Então, por definição, os arquivos são armazenados em um domínio diferente.
Acho que isso resolve o problema. Mas ainda espero que o plugin possa ser feito para suportar instalações do Discourse que tenham o S3 habilitado.
Não estou muito familiarizado com esta configuração. Você seguiu estas instruções?
Sim, tenho o S3 (e a configuração relacionada de “mídia segura”) funcionando há alguns anos sem problemas.
É apenas o componente de PDF inline que não funciona com essa configuração.
Como referência, mesmo configurando o app.yml assim:
DISCOURSE_ENABLE_CORS: true
DISCOURSE_CORS_ORIGIN: ‘*’
não ajuda.
Eu também me deparei com exatamente este problema e acabei revertendo meus uploads do S3 apenas para fazer este TC funcionar, pois tem alto valor para nós:
Eu realmente acho que, como isso é #oficial e os uploads do S3 são incentivados, isso deveria ser analisado para ver se pode funcionar com o S3 de alguma forma. Pode ser que os PDFs sejam especificamente excluídos dos uploads do S3, mas isso seria péssimo, pois alguns são enormes!
Não acho que alguém discorde.
Estou imaginando que se trata de conscientização e prioridades.
Pelo menos em relação à “conscientização”, talvez @Johani, o OP, pudesse adicionar uma pequena nota no tópico desta discussão de que o componente PDF inline não funciona com S3 ativado.
Isso pouparia tempo de solução de problemas para outros e aumentaria a conscientização sobre o problema.
Há algumas informações sobre S3 nestas postagens que retirei do auto-timer, se forem úteis?
Uma postagem foi mesclada em um tópico existente: Theme-Component Topics project
Sim, isso funciona ![]()
Para referência, caso mais alguém precise disso:
-
vá para os buckets do console da AWS
https://s3.console.aws.amazon.com/s3/bucketse selecione o bucket que foi usado para sua instalação do Discourse -
Escolha a aba Permissões

-
Role para baixo até "Compartilhamento de recursos entre origens (CORS)" e escreva:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"https://my-site.com"
],
"ExposeHeaders": []
}
]
Deve ficar assim:
Quem me dera ter encontrado isso enquanto ainda estava fazendo uploads para o S3!!
Talvez eu precise revisitar isso agora. @JammyDodger, será que esse material deveria ser anotado tanto no S3 quanto nesta OP para que outros não tropeçem nisso.
Com certeza.
Eu estava apenas esperando alguma confirmação de que funcionou antes de pensar em como melhor fazer uma edição. ![]()
Duas ideias, abordando o mesmo problema: a viewport do discourse é bastante estreita, então a maioria dos PDFs é muito pequena para ser lida inline. Para resolver isso, poderíamos
a) tornar o iframe do PDF redimensionável? Já tentei isso com CSS, mas sem sucesso - a grade subjacente parece estar no caminho
b) oferecer um segundo link “abrir em nova aba” ao lado do link de download? Estou muito interessado em não baixar muitas coisas do nosso fórum.
Isso seria uma melhoria notável! E não deve ser muito difícil de adicionar, eu acho. Talvez eu tente um PR para isso se tiver tempo nos próximos dias.
Eu acho que (b) já é fornecido como uma opção, por exemplo, inline vs. abrir em nova aba. Talvez uma terceira opção para permitir que os usuários vejam inline e abram em nova aba? Eu também gosto dessa ideia.
(a) pode ser difícil, considerando o quão difícil pode ser fazer as coisas parecerem certas em uma postagem.
Eu ficaria feliz em ver um botão de expansão
na barra de ferramentas que simplesmente exibe o PDF em tela cheia em vez de inline.@Ralf_Stockmann e @Alon1 vocês já tentaram…
Além disso, no meu Discourse eu uso este método…
Incorporar um PDF do Google Drive
(Este é o meu método preferido para que PDFs em iFrames sejam responsivos - outros métodos geralmente falham em ser responsivos entre navegadores.)
- Compartilhar
- Copiar Link de Compartilhamento
- Abrir Link de Compartilhamento em uma Nova Aba
- Clicar nos 3 Pontos Verticais no Canto Superior Direito
- Selecionar Incorporar Item
- Copiar o Código iFrame Exibido
- Colar no Editor do Discourse
Um PDF de Teste no Google Drive está incorporado aqui abaixo, que você pode \u003c\u003c Baixar Aqui \u003e\u003e
<iframe src="https://drive.google.com/file/d/1KQ-jn7R0NmZxw955QaPu3lvLFh5zpnDe/preview" width="640" height="480" allow="autoplay"></iframe>
É assim que fica… (que você também pode experimentar ao vivo AQUI no meu site)
Ótimo!
Simplesmente (1) instalando o componente temático IFrame Lightboxes e (2) adicionando a URL do meu próprio site à lista de “domínios de origem do iframe” nas configurações do componente, funciona! Ele adiciona o botão de expandir logo acima do canto direito do PDF inline
Pronto para usar ![]()
Como ainda não consegui abrir PDFs em uma nova aba, escrevi um pequeno plugin para servir todos os PDFs locais com content-disposition: inline:




