所以,已确认问题出在几年前我首次尝试设置 S3 时,我在数据库中设置了 enable_s3_uploads,这导致恢复失败,因为它会尝试上传到 S3 但信息不足。(叹气。但它在恢复 multisite/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 上传变量是个好主意。