Não foi possível baixar o PDF

Olá equipe,

Estou usando o armazenamento local do servidor para armazenar os arquivos. Enviei um arquivo PDF e ele foi enviado com sucesso para o servidor, e também está presente no servidor (verifiquei manualmente fazendo login via SSH).

Screenshot from 2019-12-24 14-44-42

Essa é a captura de tela do erro que ocorre quando tento baixar o arquivo PDF.

Este é o log do evento de download

[discourse_cloud] Started GET "/uploads/short-url/ev4yCeBAtz19YgsTSEkhLMkKrFK.pdf" for 122.168.93.128 at 2019-12-24 09:16:40 +0000
[discourse_cloud] Processing by UploadsController#show_short as PDF
[discourse_cloud]   Parameters: {"base62"=>"ev4yCeBAtz19YgsTSEkhLMkKrFK", "extension"=>"pdf"}
[discourse_cloud] Sent file /home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf (0.2ms)
[discourse_cloud] Completed 200 OK in 11ms (ActiveRecord: 0.0ms)
[discourse_cloud] Started GET "/home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf" for 122.168.93.128 at 2019-12-24 09:16:40 +0000
[discourse_cloud] ActionController::RoutingError (No route matches [GET] "/home/deploy/discourse_cloud/releases/20191220210316/public/uploads/discourse_cloud/original/1X/65a1a66f4bddc09fbdab830a8c74c7fbe05cca98.pdf")
/home/deploy/discourse_cloud/shared/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'
[discourse_cloud]   Rendering exceptions/not_found.html.erb within layouts/no_ember
[discourse_cloud]   Rendered exceptions/not_found.html.erb within layouts/no_ember (0.6ms)
[discourse_cloud]   Rendered layouts/_head.html.erb (1.0ms)
[discourse_cloud]   Rendered common/_discourse_stylesheet.html.erb (0.6ms)
[discourse_cloud]   Rendered application/_header.html.erb (0.1ms)
[discourse_cloud]   Rendering html template
[discourse_cloud]   Rendered html template (0.0ms)

O que poderia ser o erro? :-/

Se você não fez o upload do arquivo com o Discourse, precisará alterar a configuração do Nginx dentro do contêiner. Ele não está configurado para servir arquivos arbitrários em diretórios arbitrários.

A captura de tela parece ter sido carregada usando o Discourse, mas o caminho da URL parece ser um URL curto e organizado, e não o original?

Você pode tentar fazer o upload desse PDF em try.discourse.org e ver se funciona lá? Talvez haja um problema com esse arquivo específico?

Acho que o upload de outros tipos de arquivos funciona?

Bem, não consigo fazer o upload do arquivo sem problemas, mas agora ele não está me permitindo baixar o arquivo.

Fiz o upload do arquivo usando a caixa de mensagens do Discourse e o upload foi realizado com sucesso, mas não consigo baixá-lo.

Sim @Stephen, consigo fazer o upload do arquivo sem problemas usando meu Discourse, mas ele não está permitindo o download. :frowning:

Por favor, dê uma olhada nesta captura de tela. Ela tem um botão de download. Quando tentei clicar nele, não consegui baixar.

Esse é o erro que apareceu quando tentei baixar a imagem usando o botão de download. (O botão de download provavelmente está usando a função Ruby send_data.)

Só quero entender se isso é algo relacionado ao NGINX ou a permissões de diretório.

Obrigado

enfrentei o mesmo problema. O arquivo PDF foi carregado, mas não é possível baixá-lo e a página exibe a mensagem “esta página não existe”!

Fiz testes e consegui carregar e baixar um PDF facilmente aqui no Meta.

Atualização: Fiz algumas alterações e acredito que isso seja mais um bug relacionado a outros idiomas, e não ao inglês.

Precisei recriar o PDF com um nome em inglês (anteriormente, o nome do arquivo continha caracteres em persa). Após isso, o carregamento e o download funcionaram sem problemas.

Além disso, o arquivo PDF com o nome em persa pôde ser carregado e baixado facilmente aqui no Meta. Portanto, acredito que isso tenha a ver com a opção de Codificação no painel de administração.

Olá, equipe,

Desculpe, estou respondendo muito atrasado, mas resolvi meu problema fazendo alterações no arquivo nginx.conf. Foi uma correção muito simples e estava relacionada ao nginx.conf (e eu estava tentando corrigir o código principal :smiley:).

Removi esta linha do meu nginx.conf:

 proxy_set_header X-Sendfile-Type X-Accel-Redirect;

Essa foi a correção para fazer o download funcionar :slight_smile:

Vou tentar ser mais frequente a partir de agora :slight_smile:

Obrigado,
Ashish P.