上传到外部存储

大家好,

我正在尝试将 Discourse 的上传位置更改为自托管实例上的外部存储位置,以解决空间不足的问题。我已经挂载了一个 CIFS 共享,并将所有现有上传文件以相同的目录结构复制到了挂载位置。

然后,我将以下几行添加到 app.yml 中:

- volumes:
  - volume:
      host: /storage-location/uploads
      guest: /shared/uploads

在通过 ./launcher rebuild app 重建容器后(我是 root 用户),网站上的图片不再可见。它们似乎都返回了 404 代码。

我尝试将 CIFS 共享挂载为 root:root_default_hostname:www-data,但每次图片都无法显示。

执行此上传位置更改的最佳(或正确)方法是什么?

提前感谢各位!

以下是默认设置:

volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared

您可能需要类似这样的设置:

volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /your/cifs/share/discourse-uploads
      guest: /shared/uploads
1 个赞

没错!我试过那种方法,它奏效了,只要记住挂载的存储位置必须具有正确的权限。root:root 不起作用,但 _default_hostname:www-data 似乎可以。

我注意到的另一件事:主题中的上传,即使将它们移动到新的存储位置,也不再起作用,必须重新上传。其他图像/上传(徽标、标题等)工作正常。

谢谢!

不应该这样。也许你把文件复制到错误的地方了。

我也是这么想的,但我仔细检查过了,我确实将整个 uploads 文件夹从 shared/standalone/ 复制到了我的外部存储位置,包括 default 和其他子文件夹。

重要的是要提到,我尝试了几次使用不同的外部存储配置(主要是不同的文件和文件夹权限)来更改上传位置,并且在此期间执行了 rake posts:rebake,试图让附件再次工作,也许问题就发生在其中…

重新上传一遍就能修复,这很奇怪。

你可以查看 Rails 中的 Uploads.pluck(:url),看看那里是否有奇怪的东西。

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