我昨天从命令行重新构建,今天我注意到许多用户头像图片丢失(类似于2019年这个主题)。
我尝试运行 rake avatars:refresh,但问题仍然存在。
两天后仍然存在此问题?
@codinghorror 是的,连 discobot 也是:
这基本上影响了所有两年前上传了图片(未使用 gravatar)的用户,在我从本地上传切换到 S3 之前。出于某种原因,它只在上次构建后才出现问题。
上传在某个时候从 uploads 移到了 uploads/default。我在另一个与此相关的网站上遇到了一个稍微不同的问题。
您可以在数据库中查看那些损坏的上传的 URL。。。还有别的东西。要是我能在巴塞罗那就好了。
谢谢,Jay。我们越来越接近了。我检查了四个头像网址,注意到那两个可用的和那两个不可用的(蓝色的)网址以不同的域名开头:
但我在网站上看到的实际网址是不同的:
https://MY_DOMAIN/user_avatar/MY_DOMAIN/USERNAME/75/USER_ID_2.png
我想尝试替换 .amazonaws.com 前面的前缀,但不确定这是否是个好主意(或者如何操作)。
如果这很重要,我还在使用 Cloudfront 作为 S3 CDN。
我们使用那个蓝色域名来托管。您是否曾离开过我们的托管服务?如果是,您必须更新它以反映您新的存储分区。
是的,一定是这样。
但是该如何以及具体要更改什么呢?由于无法访问这些图片,因此我无法重新上传它们。或者,我是否可以从旧的备份中获取它们,然后通过 API 重新上传?
移动存储桶时,您需要运行一个重新映射,网址为 https://meta.discourse.org/t/replace-a-string-in-all-posts/48729。
当然,您需要先将文件放入新的存储桶中
。如果它们在旧的备份中,您应该将它们与存储桶同步。
只是假设一下,
如果我没有那些 S3 资产的备份,还有其他选择吗?我找不到它。\n\ndiscourse-cloud-file-uploads 是否在某个地方保留了版本/缓存?
我们会在订阅有效期间保留这些文件,并在您取消订阅后保留几天。
谢谢你,Rafael。
如果我从旧备份中提取时只看到一个 dump.sql 文件,这是否意味着它不包含上传内容?我很确定我曾设置过 backup with uploads,因为它默认是开启的。
我可以看到我几乎有 10 GB 的上传文件(在 /admin 仪表板中)。有没有办法从命令行访问它们?我在 /var/discourse/shared/standalone/uploads/ 中查看过,但它只占用了 11MB。
我还能去哪里查找,还是应该认为这些文件永远丢失了?
有一个站点设置“backup with uploads”。您可以尝试一下。
谢谢,Jay。
早在 2019 年用户上传头像时,我就启用了该设置。然后我在 2020 年切换到了 S3,就在上周,所有 2019 年的头像都丢失了。我正在尝试找到一种恢复它们的方法,因为我旧的备份似乎只有 dump.sql 文件,没有上传。
抱歉,我在回复时丢失了您消息的上下文。我认为仪表板指的是 S3 上传,而不是本地文件。
如果这些头像在 discourse.org 的 S3 存储桶中,那么它们已经丢失了。如果您从它们那里迁移并在取消账户后进行了备份,您将获得包含上传内容的完整备份。您是否有任何更大或 .tar.gz 格式的备份?
听起来您之前指向的是 discourse.org 的资产,而这些资产已经丢失了。
我最大的 2019 年备份是 59 MB,但解压后我只得到一个 217MB 的 dump.sql 文件 ![]()
非常抱歉。听起来您是从 discourse.org 迁移过来的,但没有获取到您的上传文件。
经验是宝贵的。
无论如何,谢谢你。