Проблемы с восстановлением резервной копии: SiteSetting::Upload.s3_base_url не работает, так как enable_s3_uploads был установлен в базе данных

Итак, подтверждено: проблема заключалась в том, что несколько лет назад, когда я впервые настраивал S3, я установил enable_s3_uploads в базе данных. Из-за этого восстановление не работает, так как система пытается загрузить данные в S3, но у неё недостаточно информации. (Вздох. Но восстановление инстанса с мультисайтом/S3 тоже не удаётся, потому что некоторые файлы «не были перенесены в S3».)

Интересно, имеет ли смысл сделать все настройки загрузки в S3 скрытыми. Я почти уверен, что настройка их через интерфейс пользователя ни к чему хорошему не приведёт. Однако установка параметров загрузки в S3 через базу данных может оказаться полезной… возможно.

Восстановленный на стандартную установку инстанс не показывает загрузки, потому что происходит следующее:

      Started GET "/uploads/short-url/puhaSNHeEy1S2knGFQIAZ8lprRy.pdf" for 68.11.35.109 at 2022-01-25 19:48:06 +0000
Processing by UploadsController#show_short as PDF
  Parameters: {"base62"=>"puhaSNHeEy1S2knGFQIAZ8lprRy", "extension"=>"pdf"}
Sent file /var/www/discourse/public/default/original/1X/b2a283b9381b837234e7d4830b.pdf (4.4ms)
Completed 500 Internal Server Error in 130ms (ActiveRecord: 0.0ms | Allocations: 10019)
ActionController::MissingFile (Cannot read file /var/www/discourse/public/default/original/1X/b2a283b9381b837234e7d4830.pdf)

Путь, который он ищет, — /var/www/discourse/public/default/original/1X/, а должен быть /var/www/discourse/public/uploads/default/original/1X/.

… . .

А всё потому, что я сделал переназначение, пытаясь исправить ссылки на бакет S3, и это сломало пути в локальных URL.

Кажется, это слишком детально и может быть бесполезно для кого-либо. Хотя я всё ещё считаю, что скрытие переменных загрузки S3 от интерфейса пользователя — хорошая идея.

3 лайка