Не удалось загрузить PDF

Привет, команда,

Я использую локальное хранилище сервера для сохранения файлов. Я загрузил PDF-файл, и он успешно загрузился на сервер, а также присутствует на сервере (я проверил это вручную, выполнив вход по SSH).

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

Это скриншот ошибки, возникающей при попытке загрузить PDF-файл.

Вот лог события загрузки

[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)

В чём может быть ошибка? :-/

Если вы не загрузили файл через Discourse, вам нужно изменить конфигурацию nginx внутри контейнера. По умолчанию он не настроен на обслуживание произвольных файлов из произвольных каталогов.

Скриншот, похоже, был загружен через Discourse, но путь в URL выглядит как сокращённая, «причесанная» ссылка, а не настоящая?

Можете попробовать загрузить этот PDF на try.discourse.org и посмотреть, сработает ли там? Возможно, проблема именно в этом файле?

Я так понимаю, загрузка других типов файлов работает?

Что ж, я не могу загрузить файл без ошибок, но теперь он не позволяет мне его скачать.

Я загрузил файл через поле сообщения в Discourse, и загрузка прошла успешно, но я не могу его скачать.

Да, @Stephen, я могу без проблем загрузить файл через свой Discourse, но скачивание не работает. :frowning:

Пожалуйста, посмотрите на этот скриншот: там есть кнопка скачать. Когда я пытаюсь на неё нажать, загрузка не начинается.

Вот ошибка, которая возникает при попытке скачать изображение через кнопку «Скачать» (вероятно, кнопка использует ruby-функцию send_data).

Мне просто нужно понять, связана ли проблема с NGINX или с правами доступа к каким-либо директориям.

Спасибо

Столкнулся с той же проблемой. Файл PDF загружается, но затем его невозможно скачать — открывается страница «Эта страница не существует»!

Я протестировал и легко загрузил и скачал PDF здесь, на Meta.

Обновление: Я внес несколько изменений и думаю, что это, скорее всего, #баг, связанный с другими языками, а не с английским.

Мне пришлось переименовать PDF на английский язык (раньше в имени файла были персидские символы). После этого загрузку можно было скачать без каких-либо проблем.

Кроме того, PDF-файл с персидским именем можно было легко загрузить и скачать здесь, на Meta. Так что, похоже, дело в настройке кодировки в панели администратора.

Привет, команда,

Извините, что так поздно отвечаю, но я решил свою проблему, внес изменения в файл nginx.conf. Это было очень простое исправление, и оно касалось файла nginx.conf (а я пытался исправить основной код :smiley:).

Я удалил эту строку из своего файла nginx.conf:

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

Это исправление позволило загрузке работать :slight_smile:

Теперь я постараюсь быть более активным :slight_smile:

Спасибо,
Ашиш П.