设置 S3 凭证后无法访问网站

在设置 S3 凭证进行备份后,我无法访问该站点。除了这一步之外,我没有进行其他任何更改。

1 个赞

您可以查看 /var/discourse/shared/log/rails/production.log(或类似路径)以查看错误信息。

您可能需要执行以下操作:

cd /var/discourse
./launcher enter app
rails c
# 然后执行类似如下命令
SiteSetting.backup_location='local'

但 S3 备份与此问题无关,而您的磁盘已满,这可能只是巧合。

6 个赞

谢谢。我试过了,但无法修复。错误日志如下:

ActionView::Template::Error (s3_upload_bucket)
/var/www/discourse/lib/file_store/s3_store.rb:153:in `s3_bucket'
Started HEAD "/" for 35.111.111.163 at 2020-03-05 06:34:08 +0000
Processing by ListController#latest as HTML
  Rendering list/list.erb within layouts/application
  Rendered list/list.erb within layouts/application (Duration: 6.1ms | Allocations: 2278)
  Rendered layouts/_head.html.erb (Duration: 0.2ms | Allocations: 102)
  Rendered common/_google_universal_analytics.html.erb (Duration: 0.2ms | Allocations: 79)
  Rendered common/_discourse_stylesheet.html.erb (Duration: 0.4ms | Allocations: 200)
Completed 500 Internal Server Error in 60ms (ActiveRecord: 0.0ms | Allocations: 17538)
ActionView::Template::Error (s3_upload_bucket)
/var/www/discourse/lib/file_store/s3_store.rb:153:in `s3_bucket'

还有 5 GB 的可用空间。

我建议在 Rails 控制台中禁用 S3 设置。我在上面尝试给出了一个示例。您可能需要在此处搜索更多示例。

1 个赞

您未设置 s3_upload_bucket 参数。
只需执行以下操作:

cd /var/discourse
./launcher enter app
rails c
SiteSetting.s3_upload_bucket = 'thenameofyourbucket'

请将最后一行修改为您实际的 S3 存储桶名称。

5 个赞

谢谢,问题已解决。但为什么会发生这种情况?因为我只想使用 S3 进行备份,所以没有为 上传 设置任何存储桶。这是正常现象还是 Bug?

我仅在启用 enable_s3_uploads 时才能复现此问题。

我认为发生的情况如下,并导致了 Oops 屏幕的出现:

  • 你添加了 s3 access key ids3 secret access key
  • 你配置了 s3_upload_bucket
  • 你启用了 enable_s3_uploads
  • 你将 backup_location 设置为 s3
  • 你必须设置一个 s3_backup_bucket,并将其设置为与上传桶相同的桶
  • 这会报错:你不能为 ‘s3_upload_bucket’ 和 ‘s3_backup_bucket’ 使用相同的存储桶。请为每个存储桶选择不同的存储桶或使用不同的路径。
  • 你清空了 s3_upload_bucket,以便可以使用 s3_backup_bucket
  • 但你没有关闭 enable_s3_uploads

该 Bug 在于:启用 enable_s3_uploads 需要配置 s3_upload_bucket,但在 S3 上传仍启用的情况下清空该设置会导致论坛崩溃。

7 个赞

有什么办法可以修复上面的问题吗,@eviltrout

1 个赞

已有验证机制可防止此情况:

但该机制未涵盖在启用上传功能的同时将存储桶清空的情况。

2 个赞

这应该就可以了:

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.