重建后,头像照片丢失

我昨天从命令行重新构建,今天我注意到许多用户头像图片丢失(类似于2019年这个主题)。

我尝试运行 rake avatars:refresh,但问题仍然存在。

1 个赞

两天后仍然存在此问题?

1 个赞

@codinghorror 是的,连 discobot 也是:

这基本上影响了所有两年前上传了图片(未使用 gravatar)的用户,在我从本地上传切换到 S3 之前。出于某种原因,它只在上次构建后才出现问题。

上传在某个时候从 uploads 移到了 uploads/default。我在另一个与此相关的网站上遇到了一个稍微不同的问题。

您可以在数据库中查看那些损坏的上传的 URL。。。还有别的东西。要是我能在巴塞罗那就好了。

2 个赞

谢谢,Jay。我们越来越接近了。我检查了四个头像网址,注意到那两个可用的和那两个不可用的(蓝色的)网址以不同的域名开头:

但我在网站上看到的实际网址是不同的:

https://MY_DOMAIN/user_avatar/MY_DOMAIN/USERNAME/75/USER_ID_2.png

我想尝试替换 .amazonaws.com 前面的前缀,但不确定这是否是个好主意(或者如何操作)。

如果这很重要,我还在使用 Cloudfront 作为 S3 CDN。

1 个赞

我们使用那个蓝色域名来托管。您是否曾离开过我们的托管服务?如果是,您必须更新它以反映您新的存储分区。

3 个赞

是的,一定是这样。

但是该如何以及具体要更改什么呢?由于无法访问这些图片,因此我无法重新上传它们。或者,我是否可以从旧的备份中获取它们,然后通过 API 重新上传?

1 个赞

移动存储桶时,您需要运行一个重新映射,网址为 https://meta.discourse.org/t/replace-a-string-in-all-posts/48729。

当然,您需要先将文件放入新的存储桶中 :sweat_smile:。如果它们在旧的备份中,您应该将它们与存储桶同步。

3 个赞

只是假设一下,:sweat_smile: 如果我没有那些 S3 资产的备份,还有其他选择吗?我找不到它。\n\ndiscourse-cloud-file-uploads 是否在某个地方保留了版本/缓存?

1 个赞

我们会在订阅有效期间保留这些文件,并在您取消订阅后保留几天。

1 个赞

谢谢你,Rafael。

  1. 如果我从旧备份中提取时只看到一个 dump.sql 文件,这是否意味着它不包含上传内容?我很确定我曾设置过 backup with uploads,因为它默认是开启的。

  2. 我可以看到我几乎有 10 GB 的上传文件(在 /admin 仪表板中)。有没有办法从命令行访问它们?我在 /var/discourse/shared/standalone/uploads/ 中查看过,但它只占用了 11MB。

  3. 我还能去哪里查找,还是应该认为这些文件永远丢失了?

有一个站点设置“backup with uploads”。您可以尝试一下。

1 个赞

谢谢,Jay。

早在 2019 年用户上传头像时,我就启用了该设置。然后我在 2020 年切换到了 S3,就在上周,所有 2019 年的头像都丢失了。我正在尝试找到一种恢复它们的方法,因为我旧的备份似乎只有 dump.sql 文件,没有上传。

抱歉,我在回复时丢失了您消息的上下文。我认为仪表板指的是 S3 上传,而不是本地文件。

如果这些头像在 discourse.org 的 S3 存储桶中,那么它们已经丢失了。如果您从它们那里迁移并在取消账户后进行了备份,您将获得包含上传内容的完整备份。您是否有任何更大或 .tar.gz 格式的备份?

听起来您之前指向的是 discourse.org 的资产,而这些资产已经丢失了。

我最大的 2019 年备份是 59 MB,但解压后我只得到一个 217MB 的 dump.sql 文件 :sweat_smile:

非常抱歉。听起来您是从 discourse.org 迁移过来的,但没有获取到您的上传文件。

1 个赞

经验是宝贵的。:sweat_smile: 无论如何,谢谢你。

1 个赞